有没有办法检查用户在React中所做的任何状态更改?

时间:2019-11-21 16:54:47

标签: reactjs state

我正在研究模式组件,用户可以在其中编辑他们创建的帖子的内容。

enter image description here

我设置了它,如果用户尝试不保存就关闭模式,则会弹出通知窗口。

enter image description here

但是,有时用户不做任何更改,并且我不希望他们看到此通知,我只想关闭模式。

我可以创建单独的状态来存储原始状态,然后将这些状态与当前状态进行比较,但是我有很多状态(15个),这看起来很混乱。

我想知道是否可以通过某种方式检查是否已更改任何一组特定状态?这样,我会知道是否显示通知。

1 个答案:

答案 0 :(得分:1)

似乎您使用了钩子,因此在您的情况下,我建议您使用如下所示的状态来重构您的组件,并在完成此操作后使用JSON.stringify检查是否已更改某些内容。实际上,您将一个状态作为一个对象。

SELECT *
    FROM db.test
    WHERE letters::jsonb ?| array['b'];

SELECT *
        FROM db.test
        WHERE letters::jsonb ? 'b';

const [var1, setVar1] = useState($initialVar1);
const [var2, setVar2] = useState($initialVar2);
const [var3, setVar3] = useState($initialVar3);

...
const [var14, setVar14] = useState($initialVar14);

要更新各个状态时,可以使用扩展运算符

const [componentState, setComponentState] = useState({
var1: $initialVar1,
var2: $initialVar2,
var3: $initialVar3
...
})