Main App.jsx
来自单独文件的功能
在第一张图片的最后一行中,我试图使用.call()从另一个文件中调用handleHandPageNavigation函数。我想将 this 传递给函数,以便更改状态,这将导致页面更新。
但是单击该项目时,控制台会指出无法读取未定义的属性'setState'
我不确定为什么 this 被认为是未定义的,因为我是通过.call()传递它的。任何见解将不胜感激。谢谢
答案 0 :(得分:0)
您已经使用箭头函数定义了handleOnPageNavigation方法,无论您将什么作为执行上下文传递给它,它都会忽略所有方法并采用定义它的上下文。使其成为常规函数以获取执行上下文
function handleOnPageNavigation(item){
this.setState({
page: item.key
})
}
export { handleOnPageNavigation };
但是,我必须说,这种模式很难 调试,因此您必须始终具有调用setState的函数 在组件本身内部,而不是外部