如何更新反应挂钩数组状态?
how to update react hooks array state?
我有数组状态的反应挂钩。我想通过此代码更新我的日期数据。
const [[birthYear, birthMonth, birthDay], setStudentDob] = useState([]);
如何使用响应上的 OnChange 事件进行更改?
//date
<select
value={birthDay}
onChange={handelDate}
name='day'
>
<option value='0'>Day</option>
<option value='01'>01</option>
<option value='02'>02</option>
<option value='03'>03</option>
</select>
//birthMonth
<select
value={birthMonth}
onChange={handelDate}
name='month'
>
<option value='0'>Day</option>
<option value='01'>january</option>
<option value='02'>february</option>
<option value='03'>march</option>
</select>
</select>
//birthYear
<select
value={birthYear}
onChange={handelDate}
name='year'
>
<option value='0'>Day</option>
<option value='2020'>2020</option>
<option value='2021'>2021</option>
<option value='2020'>2022</option>
</select>
如果您有更好的更新方式,请帮我找出这些问题。
handleDate可以是这样的:
const handleDate = (value, index) => {
setStudentDob(s => {
let arr = [...s];
arr[index] = value;
return arr;
})
}
确保在 onChange 处理程序中传递正确的参数:
<select
value={birthDay}
onChange={e => handleDate(e.target.value, 2)}
name='day'
>
<select
value={birthMonth}
onChange={e => handleDate(e.target.value, 1)}
name='month'
>
<select
value={birthYear}
onChange={e => handleDate(e.target.value, 0)}
name='year'
>
我有数组状态的反应挂钩。我想通过此代码更新我的日期数据。
const [[birthYear, birthMonth, birthDay], setStudentDob] = useState([]);
如何使用响应上的 OnChange 事件进行更改?
//date
<select
value={birthDay}
onChange={handelDate}
name='day'
>
<option value='0'>Day</option>
<option value='01'>01</option>
<option value='02'>02</option>
<option value='03'>03</option>
</select>
//birthMonth
<select
value={birthMonth}
onChange={handelDate}
name='month'
>
<option value='0'>Day</option>
<option value='01'>january</option>
<option value='02'>february</option>
<option value='03'>march</option>
</select>
</select>
//birthYear
<select
value={birthYear}
onChange={handelDate}
name='year'
>
<option value='0'>Day</option>
<option value='2020'>2020</option>
<option value='2021'>2021</option>
<option value='2020'>2022</option>
</select>
如果您有更好的更新方式,请帮我找出这些问题。
handleDate可以是这样的:
const handleDate = (value, index) => {
setStudentDob(s => {
let arr = [...s];
arr[index] = value;
return arr;
})
}
确保在 onChange 处理程序中传递正确的参数:
<select
value={birthDay}
onChange={e => handleDate(e.target.value, 2)}
name='day'
>
<select
value={birthMonth}
onChange={e => handleDate(e.target.value, 1)}
name='month'
>
<select
value={birthYear}
onChange={e => handleDate(e.target.value, 0)}
name='year'
>