【问题标题】:How to update initialState when using useState with React Hooks将 useState 与 React Hooks 一起使用时如何更新 initialState
【发布时间】:2021-05-07 22:03:29
【问题描述】:

我正在尝试更新本地状态的图像值,它可以正常工作,但是当我出于某种原因返回同一页面时,initialState 会保留以前的值。所以要解决这个问题,我必须单独分配值。我觉得不合适。让我知道我做错了什么。

初始化状态

const [values, setValues] = useState(initialState);

更新图片值

setValues((values) => {
   const allUploadedFiles = values.images;
   allUploadedFiles.push(data);
   return { ...values, images: allUploadedFiles };
});

将状态更改为初始值

setValues({ ...values, images: [] });
initialState.images = [];

声明时初始状态的值

const initialState = {
  images: []
}

【问题讨论】:

  • 当您声明values 时,您的initialState 设置是什么?
  • @cpppatrick 问题已更新
  • 当您更改状态时,我有 2 个观察结果。 setValues({ ...values, images: [] }) 应该足以更新状态,除非它是昂贵的计算。在这种情况下,状态可能会意外更新。你为什么要intialState.images=[]?这没有任何意义。

标签: javascript reactjs next.js


【解决方案1】:

您能否提供更多背景信息?

我认为您的 initialStateuseState() 声明很好。

但您不需要重置initialState.images,因为默认情况下应该是这样。

问题是当您调用setValues 时,valuesinitialState 都已更新并包含相同的数据?这就是为什么你必须重置initialState

【讨论】:

  • 我添加了代码 sn-p 来显示我在哪里添加图像。 initialState 已更新并包含相同的数据。没错,这就是我必须重置 initialState 的原因。
猜你喜欢
  • 1970-01-01
  • 2019-08-17
  • 2021-07-09
  • 2021-12-09
  • 1970-01-01
  • 1970-01-01
  • 2020-01-06
  • 1970-01-01
相关资源
最近更新 更多