javascript - 在 React Hooks 中使用具有 `Set` 状态的动态变量?

标签 javascript reactjs react-hooks

这是 React 组件中非常常见的模式:

handleTextFieldChange(event)
{
    const name = event.currentTarget.name;
    this.setState({[name]: event.currentTarget.value})
}

什么 Javascript 语法可以用来对 React hooks 做同样的事情?

即可能类似于以下内容:

handleTextFieldChange(event)
{
    const name = event.currentTarget.name;
    this.set[name](event.currentTarget.value);
}

最佳答案

您可以将单个 useState 与包含所有输入值的对象的默认值一起使用,并像您习惯使用类组件那样更新它。

示例

const { useState } = React;

function App() {
  const [state, setState] = useState({ email: "", password: "" });
  function onChange(event) {
    const { name, value } = event.target;
    setState(prevState => ({ ...prevState, [name]: value }));
  }

  return (
    <div>
      <input value={state.email} name="email" onChange={onChange} />
      <input value={state.password} name="password" onChange={onChange} />
    </div>
  );
}

ReactDOM.render(<App />, document.getElementById("root"));
<script src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>

<div id="root"></div>

关于javascript - 在 React Hooks 中使用具有 `Set` 状态的动态变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54679928/

相关文章:

node.js - React hooks 正在覆盖对象数组

javascript - 如何确定浏览器何时完成插入元素的绘制?

javascript - window.location.href 重定向到空白页

javascript - 在就绪状态之前操作dom可以吗?

javascript - 在 React 应用程序中包含样式

reactjs - 如何将react-hooks、redux和typescript结合在一起?

javascript - 使 JavaScript 函数与回调异步

javascript - 有什么方法可以将状态变量导出/传递到 ReactJS 中的外部 CSS 文件

html - 如何在ReactJS中的图像上添加文本?

javascript - 将嵌套对象的所有值设置为 false,除了一个