【问题标题】:React Hooks - having trouble with splice updating state during onClick eventReact Hooks - 在 onClick 事件期间拼接更新状态有问题
【发布时间】:2020-12-13 20:09:10
【问题描述】:

SANDBOX DEMO

这是我正在运行的代码的 sn-p。当我 console.log 它看起来不错,但由于某种原因它不会设置状态。单击框时,应使用拼接将其删除。我知道它失败的一个基本原因,但我似乎无法理解它。

  const handleClick = (index) => {
    const newBoxOrder = order;
    newBoxOrder.splice(index, 1);
    const newState = newBoxOrder;
    console.log(newState);
    setOrder(newState);
  };

【问题讨论】:

    标签: javascript reactjs react-hooks slice


    【解决方案1】:

    CodeSandbox

     const handleClick = (index) => {
            const newBoxOrder = order;
            newBoxOrder.splice(index, 1);
            const newState = newBoxOrder;
            console.log(newState);
            setOrder([...newState]); 
          };
    

    【讨论】:

    • 天哪,当然是传播者,我觉得自己很愚蠢,但这都是学习的一部分。非常感谢!!
    • 状态似乎仍在正确更新,但由于对 order 的引用没有更改,因此 react 没有重新渲染 DOM。
    • 谢谢!我还有更多关于引用和状态渲染的知识要学习。这有帮助
    猜你喜欢
    • 1970-01-01
    • 2020-01-25
    • 1970-01-01
    • 2019-08-08
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2020-12-28
    • 1970-01-01
    相关资源
    最近更新 更多