我想使用useState更改数组中对象的值

时间:2020-10-20 19:53:10

标签: javascript reactjs typescript

所使用的语言。数据是一个数组。
它包含语言和级别对象。

我想将参数的值置于状态级别。
调用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;
    });

};

1 个答案:

答案 0 :(得分:1)

您可以使用setState功能并映射当前状态日期。然后在必要时编辑数据。

setState({
    data: state.data.language.map(iState => {
      if(iState.language.id === updateStateId) {
          iState.language.level = value;
      }
      return iSate;
    })
});

我可能错过了要精确更改的参数,但这应该为您提供一些指导。