Javascript 如何使用滑块材质UI中的关键点存储新的更新值
如下面的代码所示,我存储状态,并且在使用Javascript 如何使用滑块材质UI中的关键点存储新的更新值,javascript,reactjs,Javascript,Reactjs,如下面的代码所示,我存储状态,并且在使用onChange={(…)=>setValue1(…)},value.target.ariaValueText之后,我在“value”变量中获取值 我的动机是想将它与中提到的{key}相关联,这样我就可以将更新后的值与键一起存储 const [value, setValue1] = React.useState(1); const handleChange=(changeEvent)=>{ setValue1(prevState => {
onChange={(…)=>setValue1(…)},value.target.ariaValueText
之后,我在“value”变量中获取值
我的动机是想将它与
中提到的{key}
相关联,这样我就可以将更新后的值与键一起存储
const [value, setValue1] = React.useState(1);
const handleChange=(changeEvent)=>{
setValue1(prevState => {...prevState, [key]:changeEvent.target.value});
//console.log(key);
console.log(prevState.key);
};
return <div className={classes.root}>
<Form.Label> {key} </Form.Label>
<Slider
defaultValue={dict[key]}
aria-labelledby="discrete-slider-custom"
getAriaValueText={valuetext}
valueLabelDisplay="auto"
//getAriaValueText={valuetext}
//value={dict[key]}
step={0.01}
min={min1}
max={max1}
//onChange={} // for example updating a state value
//onChangeCommitted={} // for example fetching new data
//marks={marks_arr[i]}
//onChange={handleChange}
onChange={(changeEvent) =>
setValue1(changeEvent.target.value)
}
/>
</div>
})
}
</Form.Group>
const[value,setValue1]=React.useState(1);
常量handleChange=(changeEvent)=>{
setValue1(prevState=>{…prevState[key]:changeEvent.target.value});
//控制台日志(键);
console.log(prevState.key);
};
返回
{key}
setValue1(changeEvent.target.value)
}
/>
})
}
您可以将类型更新为对象类型以存储键值对。例如:
const [value, setValue1] = React.useState({});
...
setValue1({[key]: changeEvent.target.value});
// ---------^ this will create/update attribute with value of "key" in your state
如果有多个滑块,则必须执行以下操作
setValue1(prevState => {...prevState, [key]: changeEvent.target.value});
为了不丢失其他键值对@tj谢谢,我正在尝试下面的代码来console.log()
onChange={handleChange}
-------------------------------------const-handleChange=(changeEvent)=>{setValue1(prevState=>{…prevState[key]:changeEvent.target.value};//console.log(key);console.log(key);console.log(prevState.key);};
很抱歉设置了代码格式感谢您提供的解决方案。它现在正在工作!