我正在研究模式组件,用户可以在其中编辑他们创建的帖子的内容。
我设置了它,如果用户尝试不保存就关闭模式,则会弹出通知窗口。
但是,有时用户不做任何更改,并且我不希望他们看到此通知,我只想关闭模式。
我可以创建单独的状态来存储原始状态,然后将这些状态与当前状态进行比较,但是我有很多状态(15个),这看起来很混乱。
我想知道是否可以通过某种方式检查是否已更改任何一组特定状态?这样,我会知道是否显示通知。
答案 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
...
})