reactjs - 如何更新反应变量状态?
问题描述
我正在尝试更新变量“selectedPlayer”的状态,但是当我 setState 函数时,该变量的状态不会更新,我已经通过控制台日志对此进行了测试,如下所示。
下面是我如何尝试设置变量的状态和一些此类文件以供您了解
this.setState({ selectPlayer: player });
这是我用来更新状态的一些组件文件和函数。
class StatApp extends Component {
constructor(props) {
super(props);
this.state = {
selectedPlayer: 'dassdasda',
};
this.selectPlayer = this.selectPlayer.bind(this);
}
selectPlayer = e => {
e.preventDefault();
// console.log(e.target.value); //will give you the value continue
// Store Value
const selectPlayer = this.state.selectedPlayer;
console.log(this.state.selectedPlayer);
console.log(selectPlayer);
// Test to see if we are getting the value from the playerButton
const player = e.target.value;
console.log(player);
this.setState({ selectPlayer: player });
console.log(selectPlayer);
};
解决方案
setState 是异步的,因此当您在控制台记录它时,状态尚未更新。您可以使用 setState 的回调形式来获取更新的状态:
this.setState(
{ selectPlayer: player },
() => console.log(this.state.selectPlayer)
);
推荐阅读
- angular - 指令从 contexmenu 更改 ngmodel 输入值
- c# - 基于语法的自定义字符串分隔
- html - 具有相同输入字段的多个表单的一个 ajax
- string - 遍历文件中的行并从 vec 中查找子字符串!生锈
- c# - 为什么在进行运算符重载时不能在类中使用 print 函数?
- flutter - 如何通过 Flutter 中的更改类型识别 Firestore 流文档?文档添加、删除、修改?
- python - 未通过 zsh 找到 pip 但通过 python3 -m pip --version 显示
- java - 如何找到 CucumberOptions 的可能值(插件 = ...)
- python - Size_hint 正在做奇怪的事情并且非常不一致
- python - 如何从 csv 读取重复的成绩,然后按平均成绩和每个人的姓名排序?