javascript - 从子类 ReactJS 将参数传递给父类中的事件处理程序
问题描述
我正在尝试将参数传递给父类中的事件处理程序,但遇到了一些困难。我已经做了大量的研究并且接近答案,但有些东西不太奏效。下面我将给出一个基本的假设示例,说明我想做的事情不起作用。
class Parent extends React.Component {
constructor(props){
super(props);
this.handleClick = this.handleClick.bind(this);
}
handleClick(i){
return event => console.log(i);
}
render(){
return <Child onClick={this.handleClick}></button>;
}
}
class Child extends React.Component {
render() {
const myVar = 2;
return <button onClick={this.props.onClick(myVar)}></button>;
}
}
我知道传递给 Child 的 onClick 道具不是函数,所以我无法直接将参数传递给它。这样做的最佳方法是什么?谢谢你的帮助!
解决方案
对您的代码进行以下更新
class Child extends React.Component{
render(){
const var = 2;
return <button onClick={ () => {this.props.onClick(var)} }</button>;
}
}
此外,您应该重构父级使用的以下方法。你是e
不必要的过去了。
handleClick(i){
console.log(i);
}
您的子组件上的 onClick 会立即被调用,而不是等待 onClick 事件触发。
推荐阅读
- r - 基于作为字符串的第一列在 R 中聚合数据框
- r - 将 R 中的多个列组合成一个新的向量列(最好是 tidyr 解决方案)
- python - python elasticsearch elasticsearch.exceptions.SSLError: ConnectionError([SSL: WRONG_VERSION_NUMBER] 版本号错误 (_ssl.c:1056))
- c++ - 如何使用户可以将变量添加到类并在 C++ 中选择类型?
- android - 即使可点击属性为真,FrameLayout onClick 事件也不会触发
- c++ - ofstreamFile << ifstreamFile.rdbuf() 失败,但文件中的文件文本正确写入 ofstreamFile
- python - Python 函数中不相关的变量更改
- node.js - 在电子应用程序中处理特定于平台的依赖项
- java - 当 jar 与 Apache Storm 一起运行时,为什么会引发 java.lang.NoClassDefFoundError (org/apache/storm/kafka/spout/KafkaSpout)?
- symfony - Symfony DoctrineFixturesBundle 依赖项问题