如何在 React 中将变量从一个方法传递到另一个方法
How to pass a variable from one method to another in React
我有一个名为TopicsList的组件,其中onClick方法中有一个名为topicsID的变量。我想传递变量来呈现方法 topicsID={topicsID},但它给出了未定义的错误。
var TopicsList = React.createClass({
getInitialState: function () {
return {
isTopicClicked : false,
topicPages
};
},
onClick: function (topicID) {
this.setState({isTopicClicked : true});
var topicsID = topicID;
},
render: function () {
return (
<div>
<div className="row topic-list">
<SingleTopicBox
topicID="1"
onClick={this.onClick}
label="Topic"
/>
<SingleTopicBox
topicID="2"
onClick={this.onClick}
label="Topic"
/>
<SingleTopicBox
topicID="3"
onClick={this.onClick}
label="Topic"
/>
<SingleTopicBox
topicID="4"
onClick={this.onClick}
label="Topic"
/>
</div>
<div className="row">
{ this.state.isTopicClicked ? <SelectedTopicPage topicsID={topicsID} topicPages={topicPages} /> : null }
</div>
</div>
);
}
});
var
只存在于该(词汇)范围内 - 即在您的onClick
函数(以及任何嵌套函数)中。
您应该将其分配给this
即 this.topicsID
.或者,在这种情况下,看起来您最好将其设置为状态,因为您想重新渲染您的子组件。
onClick = (topicID) => {
this.setState({ topicsID });
},
render() {
const { topicsID } = this.state;
return (
<div>
{topicsID && <SelectedTopicPage topicsID={topicsID} topicPages={topicPages} /> }
</div>
);
}
相关文章:
- 如何在Angular单元测试中从另一个控制器的rootScope将方法添加到rootScope中
- 将一个方法转换为promise:Nodejs
- 如何在所有ng点击事件AngularJS上启动一个方法
- 创建一个方法,通过一个窗口进行迭代并获取Titanium中的所有控件
- 拆散一个大班的巧妙方法
- 如何创建一个方法来验证数组的范围
- 如何将一个方法延迟到另一个方法首先完成,javascript
- Angular2将组件方法导入到另一个组件中
- 你能把一个匿名方法(函数)动态地变成一个命名方法吗
- 在Javascript中对类的每个实例调用一个方法
- 如何重写一个方法,并且仍然能够在重写的方法中使用基方法
- 将其中一个异步方法重写为使用promise的方法
- 添加一个setTimeout方法会使jQuery悬停方法忽略setTimeout方法中的函数
- 一个jquery验证器方法,它不接受纯数字或纯特殊字符,但接受上面是否有字母
- JQuery是否有一个“;移动“;作用或者有没有一种更紧凑的方法来做到这一点
- 我应该返回一个类似console.log()的方法调用吗
- AngularJS从对象中获取另一个值的方法
- JavaScript 方法一个有效,另一个无效
- 正确的删除方法一个属性
- QUnit:每个方法一个测试,每个方法有多个断言或多个测试