在我的代码示例中,每个按钮都必须在单击时显示不同的文本,这取决于父组件中的条件写入。
handlerButtons=()=> {
switch(this.props.id) {
case "id1": this.setState({text: "Text 1"}); break;
case "id2": this.setState({text: "Text 2"}); break;
case "id3": this.setState({text: "Text 3"}); break;
case "id4": this.setState({text: "Text 4"}); break;
case "id5": this.setState({text: "Text 5"}); break;
default: this.setState({text: "Text default"}); break;
}
}为什么单击任何按钮只显示默认文本?情况有什么问题吗?
发布于 2018-08-30 13:45:56
因为,您将函数传递给MyButton组件,但不使用它,这意味着没有带有按钮元素的onClick处理程序,这就是原因所在。
不管我们传递给道具的数据/函数是什么,它们只是对象的条目,我们需要在某个地方使用它们。
如下所示:
<button
id={this.props.id}
className="mybutton"
onClick={this.props.click}
>
{this.props.label}
</button>建议:在传入道具时对处理程序函数使用相同的名称,以避免混淆。
https://stackoverflow.com/questions/52098407
复制相似问题