我有一个为学习目的而开发的通用应用程序。我正在使用Redux管理应用程序的状态,因此所有数据都可以在其中使用。但是我想创建一些将在所有组件中使用的方法。问题是:我应该在哪里存储此方法?
将它们添加到父组件并将方法作为prop传递似乎不是很有用,因为这是Redux试图解决的事情之一。而且我非常确定Redux不是存储方法的地方。
我知道我可以在某个地方的文件中创建一个类,将其导出,向其中添加一些方法,当我想在组件中使用一个方法时,可以调用此文件,创建该类的实例并调用所需的方法;但这对我似乎反应不大...
是否有正确的方法来创建可用于所有组件的方法?
答案 0 :(得分:0)
我已经使用类似于下面的方法在组件之间成功共享了一些功能。我不确定这种方法能否解决您关于Cookie的特定用例。
这些功能可以存储在任何地方,也可以在需要时导入。他们接受组件作为第一个参数,然后返回对传入的组件进行操作的函数。
后面是未经测试的指示性代码。
// An event handler than can be shared between multiple components
const handleChange = component => event => component.setState({ value: event.target.value });
class ComponentOne extends PureComponent {
state = {};
render() {
return (
<div>
{this.state.value}
<input onChange={handleChange(this)} />
</div>
);
}
}
class ComponentTwo extends PureComponent {
state = {};
render() {
return (
<div>
{this.state.value}
<input onChange={handleChange(this)} />
</div>
);
}
}