Javascript 使用setstate更改字典,但不工作。反应
这就是它的要点,我想根据Javascript 使用setstate更改字典,但不工作。反应,javascript,reactjs,dictionary,react-hooks,use-state,Javascript,Reactjs,Dictionary,React Hooks,Use State,这就是它的要点,我想根据traildays字符串中是否提到它来更改每天的真与假。事情的结局只是周六变为现实 我认为这与…天重置所有内容有关,但任何帮助都将不胜感激,谢谢。您是正确的,每个setter使用相同的天值,从const[days,setDays]覆盖其中的一个字段。请尝试方便的setDays格式(prevValue=>newValue)。作为参数,您将收到最新的模型状态,因此可以增量应用更改: const [days, setDays] = useState({ Monday: fal
traildays
字符串中是否提到它来更改每天的真与假。事情的结局只是周六变为现实
我认为这与…天重置所有内容有关,但任何帮助都将不胜感激,谢谢。您是正确的,每个setter使用相同的天值,从
const[days,setDays]
覆盖其中的一个字段。请尝试方便的setDays格式(prevValue=>newValue)
。作为参数,您将收到最新的模型状态,因此可以增量应用更改:
const [days, setDays] = useState({ Monday: false, Tuesday: false,Wednesday: false,Thursday: false, Friday: false,Saturday: false,Sunday:false });
const [traildays, setTrialDays] = useState('MON,WED,THUR,SAT');
const Changedays = async () => {
if(traildays.includes('MON') == true) {setDays({...days,Monday:!days.Monday})}
if(traildays.includes('TUE') == true) {setDays({...days,Tuesday:!days.Tuesday})}
if(traildays.includes('WED') == true) {setDays({...days,Wednesday:!days.Wednesday})}
if(traildays.includes('THUR') == true) {setDays({...days,Thursday:!days.Thursday})}
if(traildays.includes('FRI') == true) {setDays({...days,Friday:!days.Friday})}
if(traildays.includes('SAT') == true) {setDays({...days,Saturday:!days.Saturday})}
if(traildays.includes('SUN') == true) {setDays({...days,Sunday:!days.Sunday})}
您是正确的,每个setter使用相同的天值,从
const[days,setDays]
并覆盖其中的一个字段。请尝试方便的setDays格式(prevValue=>newValue)
。作为参数,您将收到最新的模型状态,因此可以增量应用更改:
const [days, setDays] = useState({ Monday: false, Tuesday: false,Wednesday: false,Thursday: false, Friday: false,Saturday: false,Sunday:false });
const [traildays, setTrialDays] = useState('MON,WED,THUR,SAT');
const Changedays = async () => {
if(traildays.includes('MON') == true) {setDays({...days,Monday:!days.Monday})}
if(traildays.includes('TUE') == true) {setDays({...days,Tuesday:!days.Tuesday})}
if(traildays.includes('WED') == true) {setDays({...days,Wednesday:!days.Wednesday})}
if(traildays.includes('THUR') == true) {setDays({...days,Thursday:!days.Thursday})}
if(traildays.includes('FRI') == true) {setDays({...days,Friday:!days.Friday})}
if(traildays.includes('SAT') == true) {setDays({...days,Saturday:!days.Saturday})}
if(traildays.includes('SUN') == true) {setDays({...days,Sunday:!days.Sunday})}
@udalmik说了什么,或者您可能希望将状态设置一次,以不进行任何不必要的重新渲染
if(traildays.includes('MON') == true) {
setDays(prevDays => {
return {...prevDays, Monday:!days.Monday};
});
}
@udalmik说了什么,或者您可能希望将状态设置一次,以不进行任何不必要的重新渲染
if(traildays.includes('MON') == true) {
setDays(prevDays => {
return {...prevDays, Monday:!days.Monday};
});
}
谢谢,伙计,工作完美谢谢,伙计,工作完美谢谢,那很有用谢谢,那很有用