【发布时间】:2020-02-26 10:31:43
【问题描述】:
我正在使用反应钩子 useState 来更新对象。我有一个可重用的组件,它只是一个输入,我将 props 传递给它和一个更新状态的 onChange 处理程序。
如何使用道具值“fooType”来动态更新状态?这在 fooType 中的 fooType 以外的其他工作:e.target.value` 未被识别为变量。有没有办法重构它以这种方式工作?
输入组件:
const Input = (props) => {
const { foo, foos, setFoos, fooType } = props;
return (
<input type='text'
placeholder={ foo }
value={ foo }
onChange={ (e) => setFoos({ ...foos, fooType: e.target.value }) } />
);
};
这是我将道具传递给三个输入的文件
const InputGroup = (props) => {
// initial state
const [foos, setFoos] = useState({
foo1: 0, foo2: 0, foo3: 0
});
return (
<div>
<Input foo={ foos.foo1 }
fooType='foo1'
foos={ foos }
setFoos={ setFoos } />
<Input foo={ foos.foo2 }
fooType='foo2'
foos={ foos }
setFoos={ setFoos } />
<Input foo={ foos.foo3 }
fooType='foo3'
foos={ foos }
setFoos={ setFoos }/>
</div>
);
}
【问题讨论】:
标签: javascript reactjs react-hooks