[英]I want to change the value of an object in array using useState
The language in state.状态中的语言。 data is an array.
数据是一个数组。
It contains Language and Level objects.它包含语言和级别对象。
I want to put the value of the argument in the level of state.我想把参数的值放在状态级别。
language when the process of onClickUpdatelanguage
is called.调用
onClickUpdatelanguage
过程时的语言。
interface Data {
name: string;
language: Language[];
}
interface Language {
lang: Lang;
level: Level;
}
interface Lang {
id: name;
name: string
}
interface Level {
id: name;
name: string
}
interface State {
data: Data;
text: string;
modal: boolean
}
const Index: FC = () => {
const [state, setState] = useState<State>({
data: initialdata,
text: '',
modal: false,
});
const onClickUpdateLanguage = (value: Level, updateStateId: number) => {
const target = state.data.language.find((st) => {
return st.language.id === updateStateId;
});
}; };
You can use the setState functionality and map over the current state date.您可以使用 setState 功能并映射当前状态日期。 Then edit the data where necessary.
然后在必要时编辑数据。
setState({
data: state.data.language.map(iState => {
if(iState.language.id === updateStateId) {
iState.language.level = value;
}
return iSate;
})
});
I've might missed out in which parameter you want to change exactly, but this should give you some direction.我可能错过了您想要准确更改哪个参数,但这应该会给您一些指导。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.