Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将方法移出React组件,但仍然访问状态对象_Javascript_Reactjs - Fatal编程技术网

Javascript 将方法移出React组件,但仍然访问状态对象

Javascript 将方法移出React组件,但仍然访问状态对象,javascript,reactjs,Javascript,Reactjs,我希望通过将一些方法移动到FooHelpers.js ES6类中,然后将它们推广到其他相关的React组件中,来重构一个相当笨拙的React组件 我的问题是,我想移出的这些方法访问周围React组件的state对象 当前情况: // Foo.jsx getItems() { return this.state.items; } someLogic() { const items = this.getItems(); } 我想去的地方: // FooHelpers.js g

我希望通过将一些方法移动到FooHelpers.js ES6类中,然后将它们推广到其他相关的React组件中,来重构一个相当笨拙的React组件

我的问题是,我想移出的这些方法访问周围React组件的state对象

当前情况:

// Foo.jsx

getItems() {
    return this.state.items;
}

someLogic() {
    const items = this.getItems();
}
我想去的地方:

// FooHelpers.js

getItems() {
    // ???
}

// Foo.jsx

someLogic() {
    const items = FooHelpers.getItems();
}

我有多种方法可以考虑这样做,但我很想看看是否有人以更具反应性的方式来处理这个问题。

这是一个完美的高阶组件用例,它的孩子将是与Foo.jsx相关的组件。在我对这个问题的回答中可以看到更多关于HOC的信息:。

嗯,我能想到的最简单的方法就是使用.call,我相信你已经想到了。@Nick没有,根本没有想到。我想得太多了:如果有人插话的话,我会把问题留着!最好将函数设置为无状态。传入部分状态,然后将结果绑定回状态。最佳方式。