反应动态形式与反应状态
React Dynamic Form with React State
所以我需要创建一个与动态字段反应的表单,这些字段是数组中的元素,
所以我必须从 Form 创建一个对象(这是一个使用 useState 钩子的状态),字段应该是这个对象的属性,我的代码:
const [object, setObject] = useState({})
const onChange = e => {
setObject({...object,[e.target.name]:e.target.value})
}
const properties = ["to","placeFrom","placeTo","from","date"]
{properties.length !== 0 &&
<form>
{properties.map(property =>
<input type="text" class="form-control" name={property} value={object.property} onChange={onChange}/>
)}
</form>
}
状态中的对象应该是这样的:
{
to: value,
placeFrom: value,
placeTo: value,
from: value,
date: value,
}
问题出在输入的值属性上,我也无法使其动态化。
提前致谢!
问题是在为 <input/>
设置 value
时如何访问 object
状态。
通过执行 object.property
,您要求 javascript 提供与对象上的 property
键关联的值。如果您的状态对象的形式为 return,那将是一个值:
{
property: 'some-value'
}
在这种情况下,您的状态中没有名为 property
的键,这不是预期的行为。
要使用变量 property
动态访问 object
,您可以这样做:object[property]
.
因此您的输入看起来像
<input type="text" class="form-control" name={property} value={object[property]} onChange={onChange}/>
我可能还建议您可以提供一个更具描述性的名称,例如 formValueState
或类似的名称。
祝你好运!
所以我需要创建一个与动态字段反应的表单,这些字段是数组中的元素, 所以我必须从 Form 创建一个对象(这是一个使用 useState 钩子的状态),字段应该是这个对象的属性,我的代码:
const [object, setObject] = useState({})
const onChange = e => {
setObject({...object,[e.target.name]:e.target.value})
}
const properties = ["to","placeFrom","placeTo","from","date"]
{properties.length !== 0 &&
<form>
{properties.map(property =>
<input type="text" class="form-control" name={property} value={object.property} onChange={onChange}/>
)}
</form>
}
状态中的对象应该是这样的:
{
to: value,
placeFrom: value,
placeTo: value,
from: value,
date: value,
}
问题出在输入的值属性上,我也无法使其动态化。
提前致谢!
问题是在为 <input/>
设置 value
时如何访问 object
状态。
通过执行 object.property
,您要求 javascript 提供与对象上的 property
键关联的值。如果您的状态对象的形式为 return,那将是一个值:
{
property: 'some-value'
}
在这种情况下,您的状态中没有名为 property
的键,这不是预期的行为。
要使用变量 property
动态访问 object
,您可以这样做:object[property]
.
因此您的输入看起来像
<input type="text" class="form-control" name={property} value={object[property]} onChange={onChange}/>
我可能还建议您可以提供一个更具描述性的名称,例如 formValueState
或类似的名称。
祝你好运!