对象的 setState - React Native

Era*_*sed 3 reactjs react-native

我有这个例子:

this.state = {
      lang1: { name: 'Anglais', code: "en" },
      lang2: { name: 'Français', code: "fr" }
};
Run Code Online (Sandbox Code Playgroud)

如何设置 lang1.name?当我这样做时它不起作用:

this.setState({ lang1.name: "myExample" });
Run Code Online (Sandbox Code Playgroud)

我是 React Native 的新手,我不太明白

Che*_*tan 7

你可以这样做。... 只需添加退出键,然后添加/覆盖新键

this.setState({
	lang1:{
		...this.state.lang1,
		name: "myExample"
	}
})
Run Code Online (Sandbox Code Playgroud)


小智 5

this.setState({
  lang1: {
    name: "myExample",
    code: this.state.lang1.code
  }
});
Run Code Online (Sandbox Code Playgroud)

  • 您应该解释为什么它有效,而不是仅仅给出仅代码的答案。就目前情况而言,这个答案对于帮助 OP 或未来的访问者了解正在发生的事情没有多大帮助。您还可以使用 ES6 `...` 扩展运算符使您的示例更适用于一般场景 (2认同)