反应|如何检查初始状态是否更改

时间:2019-12-15 15:12:19

标签: javascript reactjs redux react-router state

我正在一个页面上有多个部分的React应用程序上工作。每个部分将具有一个将在加载表单时预先填充的表单。 现在,假设用户在第一部分中更新了一个值(例如更改了文本框值),我想将该部分标记为“脏”,并且当单击提交按钮时,该部分状态也将传递到服务器上。 / p>

这意味着如果更改了A,B和C部分,我希望有一种机制可以将它们标记为脏,并且仅提交遗憾的部分。

一种可能的方法是保留一个单独的初始状态对象并将其与当前状态进行比较,但这将意味着管理单独的较大状态值。 我想知道是否有更清洁的方法。

1 个答案:

答案 0 :(得分:2)

此解决方案适用于Redux中的状态 您应该在componentDidMount.its中使用from store.subscribe。它是redux的侦听器。 每次您在redux中的商店更改store.subscribe时都会调用。

...
//"You should give your store address"
import store from "yourStoreForRedux/store";


componentDidMount() {
    store.subscribe(() => {
       //Store.getState is a function for redux that give you 
       //,your store
      let data = store.getState();

      //In this place call every function that you want to call 
      //per every store changed for example I setState
       this.setState({ reduxProduct: data });
  }