gpt4 book ai didi

javascript - 从渲染方法中的嵌套函数 react 调用组件的方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:31:44 26 4
gpt4 key购买 nike

我想调用方法 updateCurrentThread onCLick,但是我收到以下错误:

Uncaught TypeError: Cannot read property 'updateCurrentThread' of undefined

updateCurrentThread: function(thread) {
this.setState({
currentThread: thread
}).bind(this);
},


render: function () {
var threads = this.state.data.map(function (thread) {
var boundClick = this.updateCurrentThread.bind(this, i);
let time = getThreadDate(thread.timestamp);
return (
<div className="row thread" key={thread.threadID}>
<ThreadParticipants onClick={boundClick} key={i} className="small-2 small-centered columns" ids={thread.participantIDs}/>
</div>
);
})

最佳答案

函数中的 this 作用域是函数,而不是组件。如果您能够使用词法作用域的 ES6 箭头函数,那么您当前的方法将起作用。在箭头函数之前,人们会将组件 this 存储在一个变量中(例如 var self = this),然后是 self.updateCurrentThread

关于javascript - 从渲染方法中的嵌套函数 react 调用组件的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35543325/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com