javascript - 只是想问一下Button的功能

标签 javascript reactjs react-native react-redux

我是 ReactJs 的初学者。我在构建应用程序时遇到问题。 我的相关代码是

this.state={
  displaySocialInputs: false,
}

我使用按钮切换值。 该按钮性能良好,但无法理解按钮中使用的逻辑。

<button
  type="button"
  onClick={() => {
    this.setState(prevState => ({
      displaySocialInputs: !prevState.displaySocialInputs
    }));
  }}
  className="btn btn-light"
>
  Add Social Networks Links`enter code here`
</button>

我想问按钮如何知道通过在此处输入代码的“prevState”值来更改状态值。我们没有传递任何值。 希望您能理解这个问题。

最佳答案

代码中的此片段:

prevState => ({
  displaySocialInputs: !prevState.displaySocialInputs
})

...是回调。本质上,您是在告诉框架“如果您给我当前状态并将其称为 prevState,这就是我想要对其进行转换的方式”。

你可以这样想:

  1. 最初创建组件并将 displaySocialInputs: false 设置为初始状态。该组件会记住这一点。
  2. 单击按钮时,将调用 setState。
  3. setState 检索当前状态并调用您为其提供的回调,并将该状态作为 prevState 参数传递给您。

由于这种模式,您不必自己给它一个状态:框架会为您做这件事。

关于javascript - 只是想问一下Button的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53179132/

相关文章:

React-Native 图像不透明度赋予文本不透明度

javascript - 视频捕获期间移动 safari 内存不足

javascript - 通过对象数组中的键获取值

javascript - 如何在路线更改时重新运行脚本 React

javascript - 使用 JavaScript 向所有打开的窗口/选项卡发送消息

reactjs - 使用 nextjs 自定义路由?

node.js - 在 Kubernetes 上部署带有前端 + 后端应用程序的 Docker 镜像

reactjs - ScrollView 位置在子组件重新渲染(更新)时重新启动

javascript - 你如何在angularjs中重用模板

java - 启动脚本中的 GATE -Dgate.plugins.home 选项