到目前为止,我一直在使用React
和React-Router
,并且在URL
之间传递数据时,我已将状态传递为
this.props.history.push(Routes.transactionEdit, this.state.transaction);
记录在案here
在Component中,我会将其用作
constructor(props) {
super(props);
this.state = {
userId: props.history.location.state.userId,
transactionId: props.history.location.state.id,
createdAt: props.history.location.state.createdAt,
name: props.history.location.state.name,
amount: props.history.location.state.amount,
}
}
但是,我了解到在Redux
中管理状态是一个更好的主意,它有助于测试商店与视图的外观分开。我喜欢这个主意,因为我关心可以清洁测试的代码。
我开始重构代码,对于需要数据库数据的许多部分,我能够使用thunk
模式迁移代码。但是,在这个状态作为history.push
的一部分发送的用例中,我不知道如何将此状态放入Redux
商店。
问题
如何将this.props.history.push(Routes.transactionEdit, this.state.transaction);
(推送期间)中的状态迁移到Redux
商店,以便可以在React
组件之外进行管理?
由于
答案 0 :(得分:0)
您需要设置一个特定的action
,专门用于获取组件的状态并将其推送到Redux的商店。当然,您需要让减速器对该动作做出适当的响应。
如果你是Redux的新手,这可能会打开一大堆蠕虫。