javascript - 更新 React Hook 对象元素
问题描述
我有一个下拉列表,用户可以在其中选择他们想要设置待办事项的日期。根据我将添加的日期true
。
例如,通过选择字段,Monday
如果用户选择afternoon
并且还选择evening
了下午字段,则一定不会受到影响。那有可能吗。请帮帮我。
这是我的代码
const ToDo = () =>{
const [selectedCat, setSelected] = useState('')
const [mon, setMon] = useState([{
'morning':[],
'afternoon':[],
'evening':[]
}])
const days = [
{itemName: "Select a day"},{itemName: "Monday"},
{itemName: "Tuesday"},
{itemName: "Wednesday"},{itemName: "Thursday"},
{itemName: "Friday"},{itemName: "Saturday"},
{itemName: "Sunday"}
]
const whichDay = () =>{
switch(selectedCat){
case selectedCat === 'Monday':
setMon({
"morning": true
})
default:
break
}
}
return(
<Picker
mode="dropdown"
selectedValue={selectedCat}
onValueChange={(itemValue, itemIndex) => setSelected(itemValue) && whichDay()}
>
{category.map((item, index) => (
<Picker.Item
label={item.itemName}
value={item.itemName}
index={index}
/>))}
</Picker>
)
}
解决方案
const ToDo = () =>{
const [selectedCat, setSelected] = useState('')
const [mon, setMon] = useState([{
'morning':[],
'afternoon':[],
'evening':[]
}])
const days = [
{itemName: "Select a day"},{itemName: "Monday"},
{itemName: "Tuesday"},
{itemName: "Wednesday"},{itemName: "Thursday"},
{itemName: "Friday"},{itemName: "Saturday"},
{itemName: "Sunday"}
]
const whichDay = () =>{
switch(selectedCat){
case selectedCat === 'Monday':
setMon((aAlreadySelectedState)=>{return {
"morning": true,
...aAlreadySelectedState
}})
default:
break
}
}
return(
<Picker
mode="dropdown"
selectedValue={selectedCat}
onValueChange={(itemValue, itemIndex) => setSelected(itemValue) && whichDay()}
>
{category.map((item, index) => (
<Picker.Item
label={item.itemName}
value={item.itemName}
index={index}
/>))}
</Picker>
)
}
推荐阅读
- java - 有效括号 Java
- mongodb - Mongodb 查询没有返回任何内容
- java - 如何在无向图中创建相邻节点的 ArrayList 以协调节点?
- c - 无法跳出 C 中的 for 循环
- javascript - 加载带有 *ngIf 的微调器在函数执行期间未显示
- c++ - 将字符数组设置为彼此相等的方法不起作用
- arrays - 如何在没有`each``map`或`collect`方法的情况下用while对ruby中的数字数组进行平方?
- unity3d - Unity——粒子系统材质是这样的?
- xml - 是否可以从 XMl 中获取具有最低值的单个元素?
- asp.net - 如何在 Typescript 中引用本机 ASP 控件?