不明白 JavaScript 赋值运算符如何与函数交互
Don't understand how JavaScript assign operator interacts with a function
我的问题是我不明白赋值运算符是如何被解释和与函数交互的。让我解释一下
我正在更改我的组件的状态,当然我做错了一些事情,直到我意识到它我才发现。
我的组件:
class UpdateLifeCycle extends Component {
state = { src: urls[this.props.election] };
componentWillReceiveProps(nextProps) {
this.setState = { src: urls[nextProps.election] };
}
render() {
return (
<div>
<p>Selected {this.props.election}</p>
<img //
alt={this.props.election}
src={this.state.src}
witdh="250"
/>
<p>{urls[this.props.election]}</p>
<p>{this.state.src}</p>
</div>
);
}
}
我做的,错的是这篇
this.setState = { src: urls[nextProps.election] };
我应该做的是将它作为参数传递而不是分配它。
this.setState({ src: urls[nextProps.election] });
为什么 JS 解释器允许您对函数进行赋值和对象化,对象被赋值到哪里?
TL;DR
setState
是一个 变量 ,它当前持有一个 function
。没有什么可以阻止您更改它的值并在那里添加一个对象,因为它 是 一个变量。 JavaScript 受到其他函数式编程语言的影响,将函数赋值给变量是可以的。
说明
state
是 React 组件中的一个特殊对象,您可以将其访问为 this.state
。 setState
是 React 组件中的一个特殊函数,它允许您修改状态。更新状态时会调度操作,但是您不应该直接修改 React 组件的状态,并且应该始终使用 setState
.
setState
是JavaScriptclass
中的另一个变量(你的React组件是基于class的组件),默认持有修改state
变量。
您可以覆盖 JavaScript 中的变量,并且当您将对象(您想要的新状态)分配给 setState
时,您正在更改 setState
的值,它现在无法再更新 state
变量。
你会发现 React 的 docs 很有帮助。
我的问题是我不明白赋值运算符是如何被解释和与函数交互的。让我解释一下
我正在更改我的组件的状态,当然我做错了一些事情,直到我意识到它我才发现。
我的组件:
class UpdateLifeCycle extends Component {
state = { src: urls[this.props.election] };
componentWillReceiveProps(nextProps) {
this.setState = { src: urls[nextProps.election] };
}
render() {
return (
<div>
<p>Selected {this.props.election}</p>
<img //
alt={this.props.election}
src={this.state.src}
witdh="250"
/>
<p>{urls[this.props.election]}</p>
<p>{this.state.src}</p>
</div>
);
}
}
我做的,错的是这篇
this.setState = { src: urls[nextProps.election] };
我应该做的是将它作为参数传递而不是分配它。
this.setState({ src: urls[nextProps.election] });
为什么 JS 解释器允许您对函数进行赋值和对象化,对象被赋值到哪里?
TL;DR
setState
是一个 变量 ,它当前持有一个 function
。没有什么可以阻止您更改它的值并在那里添加一个对象,因为它 是 一个变量。 JavaScript 受到其他函数式编程语言的影响,将函数赋值给变量是可以的。
说明
state
是 React 组件中的一个特殊对象,您可以将其访问为 this.state
。 setState
是 React 组件中的一个特殊函数,它允许您修改状态。更新状态时会调度操作,但是您不应该直接修改 React 组件的状态,并且应该始终使用 setState
.
setState
是JavaScriptclass
中的另一个变量(你的React组件是基于class的组件),默认持有修改state
变量。
您可以覆盖 JavaScript 中的变量,并且当您将对象(您想要的新状态)分配给 setState
时,您正在更改 setState
的值,它现在无法再更新 state
变量。
你会发现 React 的 docs 很有帮助。