首页 > 解决方案 > 如何使用带有 prevState 的模板字符串与 useState() 挂钩?

问题描述

在以下表单输入代码中,我使用属性名称作为静态值并且它可以工作:

       <input      
        name={inputName}
        type="text"
        placeholder={placeholder}
        value={value}
        onChange={(e) =>
          setValue((prevState) => ({
            ...prevState,
            customerName: e.target.value,
          }))
        }
        style={{ fontFamily: "Jameel Noori Nastaleeq" }}
        readOnly={readOnly}
      />

虽然如果我尝试将它用作作为道具传递给该组件的动态值,但它不起作用我该怎么做?

动态值错误代码:

      <input
        name={inputName}
        type="text"
        placeholder={placeholder}
        value={value}
        onChange={(e) =>
          setValue((prevState) => ({
            ...prevState,
            ${`valueNameToUpdate`}: e.target.value,
          }))
        }
        style={{ fontFamily: "Jameel Noori Nastaleeq" }}
        readOnly={readOnly}
      />

标签: reactjsreact-hooksnext.js

解决方案


尝试这个

onChange={(e) =>
      setValue((prevState) => ({
       ...prevState,
       [valueNameToUpdate]: e.target.value,
      }))
}

推荐阅读