【问题标题】:can any one please explain me react setState new to me谁能解释一下我对 setState 的反应
【发布时间】:2018-11-26 08:14:27
【问题描述】:

谁能让我知道每一行的工作,因为我不知道 我们可以让我们进入固定状态吗?请解释这两行

    const userDetails = previousState.userDetails
    return { userDetails: {...userDetails, [key]: value} }

设置状态的返回我没看懂

     this.setState((previousState) => {
     const userDetails = previousState.userDetails
     return { userDetails: {...userDetails, [key]: value} }
     })

【问题讨论】:

标签: reactjs setstate


【解决方案1】:

setState 可以接受从前一个状态到新状态的函数:

this.setState(previousState => newState);

previousState => newState 是一个箭头函数,它将接受先前的状态(由setState 调用时提供),并且必须提供新的状态。

在您发布的代码中,新状态的计算方法是从先前状态中获取一个名为 userDetails 的对象,然后将新的键值对附加到它上面。

这是通过两种机制完成的。第一个是扩展运算符:...userDetails,它将原始对象中的所有键值对添加到新的userDetails 值中。接下来,添加新值:

[key]: value

这意味着要创建一个新对,其中键是键变量的值(我怀疑这在setState 调用之前的函数中的某处可用),并且值等于一个变量命名为 value,这又是以前可用的。

当您想将动态值用作映射中的键时,这是要使用的表示法。

编辑 - 从评论中回答问题

任何超过一行的函数体都需要放在块{ ... }中。当您想从该函数返回值时,使用 return 关键字。

您在setState 中看到的return 是传递给setState 的函数的返回值。

【讨论】:

  • return m 不明白它在哪里返回没有任何功能?我们可以在任何地方写 return 吗?返回的返回令人困惑,因为我没有使用。如何决定何时使用 return?跨度>
  • 添加说明
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-07
  • 2015-12-21
  • 2011-12-05
  • 2013-10-10
  • 2015-11-23
  • 2013-05-23
  • 2017-07-23
相关资源
最近更新 更多