最佳答案
我想做的是:
我尝试将一个字符串从子组件传递给父组件的 handleChange 函数。
目前的工作方式:
我有一个父 React JS 类,其方法如下:
handleChange(event) {
console.log(event.target.value);
}
在渲染函数中,我有以下内容:
<Child handleChange={this.handleChange.bind(this)} />
在儿童课上,我有:
<fieldset onChange={this.props.handleChange}>
<div>Tag 1: <input id="tag1" value={tags[0]} /></div>
<div>Tag 2: <input id="tag2" value={tags[1]} /></div>
<div>Tag 3: <input id="tag3" value={tags[2]} /></div>
</fieldset>
这样挺好的。
相反,我正在努力做的是:
我试图向 handleChange 函数添加一个 section
参数,如下所示:
handleChange(section, event) {
console.log(section);
console.log(event.target.value);
}
在孩子课上,我有:
<fieldset onChange={this.props.handleChange("tags")}>
<div>Tag 1: <input id="tag1" value={tags[0]} /></div>
<div>Tag 2: <input id="tag2" value={tags[1]} /></div>
<div>Tag 3: <input id="tag3" value={tags[2]} /></div>
</fieldset>
我现在明白了错误所在:
Uncaught TypeError: Cannot read property 'target' of undefined
这个错误将在我的第二个 console.log 语句中引发。
我做错了什么?
此外,我正在考虑使 section
参数成为可选的。如果是这样,有没有简单的方法可以做到这一点?如果事件参数必须是最后一个,那么似乎不太可能。