reactjs - 如何动态使用 map 函数 Hook useState 属性

标签 reactjs react-hooks setstate

我的问题和this one几乎一样.

在这种情况下,此人拥有以硬编码方式创建的状态 map :

const App = props => {
  const [state, changeState] = useState({
    name: "",
    eventTitle: "",
    details: "",
    list: "",
    toggleIndex: "",
    editName: "",
    editEventTitle: "",
    editDetails: "",
  });

不同之处在于我想动态创建这些状态,从另一个组件接收它们。我尝试过类似的方法,但显然没有用:

const App = props => {
  const [state, changeState] = useState({
    props.inputs.map((input, i) =>
      input = ""
    )
  });

你知道解决这个问题的方法吗?

最佳答案

假设 props.input 只是您想要的键的数组,您可以通过遍历数组并使用 []

const [state, changeState] = useState({});

useEffect(() => {
    props.input.forEach(item => changeState(prevState => ({...prevState, [item]: "" })));
}, [props.input])

关于reactjs - 如何动态使用 map 函数 Hook useState 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60710716/

相关文章:

javascript - 如果连续点击两个相同的名字,如何使两个相同的名字保持红色?

javascript - Meteor 尚不支持 ECMA7 静态原型(prototype),有什么好的解决方法吗?

react-native - 在 subview 中水平滚动时,如何防止父 Flatlist 的垂直滚动?

reactjs - 我应该将 setState 包含在 useCallback 的依赖项数组中吗?

reactjs - 单例还是 React Context 访问数据访问层函数?

javascript - 我们可以将 setState 作为 props 从一个组件传递到另一个组件,并在 React 中从子组件更改父状态吗?

reactjs - 测试重定向页面

node.js - React-Router Router.HistoryLocation 刷新页面

c++ - ios::setstate 实际上需要多少个参数?

javascript - react setState : Callback to function of child-component