Getting TypeError: this is undefined on checkbox
Getting TypeError: this is undefined on checkbox
所以,我正在尝试创建一个复选框组件,但我遇到了问题。
我的 CheckedBox.js 是这样的:
import React, {useState} from 'react';
function CheckedBox() {
return(
<label>
<input type="checkbox"
defaultChecked={this.state.checked}
onChange={this.handleChange.bind(this)}
/>
</label>
)
}
export default CheckedBox;
这是我调用 CheckedBox 的部分:
<CheckedBox checked={checked} handleChange={() => setChecked(!checked)}/> MyCheckBox
我收到错误 TypeError: this is undefined。我该如何解决这个问题?
我看到您正在使用函数组件并将道具传递给它。所以你可以这样更新:
function CheckedBox({checked, handleChange}) {
return (
<label>
<input
type="checkbox"
defaultChecked={checked}
onChange={handleChange}
/>
</label>
);
}
您正在使用功能组件。功能组件没有像 Class 组件那样的内部状态。您需要使用 React Hooks 将状态存储在功能组件中。在这里阅读更多:Hooks intro, API Ref
在这种情况下,最好将道具作为值传递,使其成为 controlled component
import React from 'react';
function CheckedBox({value, onChange}) {
return (
<label>
<input type="checkbox"
defaultChecked={value}
onChange={onChange}
/>
</label>
)
}
export default CheckedBox;
所以,我正在尝试创建一个复选框组件,但我遇到了问题。 我的 CheckedBox.js 是这样的:
import React, {useState} from 'react';
function CheckedBox() {
return(
<label>
<input type="checkbox"
defaultChecked={this.state.checked}
onChange={this.handleChange.bind(this)}
/>
</label>
)
}
export default CheckedBox;
这是我调用 CheckedBox 的部分:
<CheckedBox checked={checked} handleChange={() => setChecked(!checked)}/> MyCheckBox
我收到错误 TypeError: this is undefined。我该如何解决这个问题?
我看到您正在使用函数组件并将道具传递给它。所以你可以这样更新:
function CheckedBox({checked, handleChange}) {
return (
<label>
<input
type="checkbox"
defaultChecked={checked}
onChange={handleChange}
/>
</label>
);
}
您正在使用功能组件。功能组件没有像 Class 组件那样的内部状态。您需要使用 React Hooks 将状态存储在功能组件中。在这里阅读更多:Hooks intro, API Ref
在这种情况下,最好将道具作为值传递,使其成为 controlled component
import React from 'react';
function CheckedBox({value, onChange}) {
return (
<label>
<input type="checkbox"
defaultChecked={value}
onChange={onChange}
/>
</label>
)
}
export default CheckedBox;