状态仅在第二次点击时实现
State only gets actualized on the second cklick
基本上我想在用户单击按钮时将 searchButtonClicked
的状态 属性 设置为 true。问题是第一次单击按钮时以及用户输入 smth 时。 searchButtonClicked
保持为假 {textInput: "frw", searchButtonClicked: false}
仅在第二次点击时 searchButtonClicked 变为真。{textInput: "frw", searchButtonClicked: true}
什么地方出了错?这是组件:
import React, { Component } from 'react';
import { Redirect } from 'react-router';
class Wikipedia extends Component {
constructor(props) {
super(props);
this.state = {
textInput:"",
searchButtonClicked: false
}
this.onTextInput=this.onTextInput.bind(this);
this.onButtonClicked=this.onButtonClicked.bind(this);
}
onTextInput(event) {
this.setState({
textInput: event.target.value
})
}
onButtonClicked() {
this.setState({
searchButtonClicked: true
})
console.log(this.state);
}
render() {
return (
<div>
<h1> My Wikipedia API App </h1>
<input type="text" onChange={this.onTextInput}/>
<br/>
<button onClick={this.onButtonClicked}> Search </button>
</div>
)
}
}
export default Wikipedia;
提前致谢和问候
法比安
您还可以使用 async / await 来减少嵌套:
onButtonClicked = async() => {
await this.setState({
searchButtonClicked: true
});
console.log(this.state);
}
基本上我想在用户单击按钮时将 searchButtonClicked
的状态 属性 设置为 true。问题是第一次单击按钮时以及用户输入 smth 时。 searchButtonClicked
保持为假 {textInput: "frw", searchButtonClicked: false}
仅在第二次点击时 searchButtonClicked 变为真。{textInput: "frw", searchButtonClicked: true}
什么地方出了错?这是组件:
import React, { Component } from 'react';
import { Redirect } from 'react-router';
class Wikipedia extends Component {
constructor(props) {
super(props);
this.state = {
textInput:"",
searchButtonClicked: false
}
this.onTextInput=this.onTextInput.bind(this);
this.onButtonClicked=this.onButtonClicked.bind(this);
}
onTextInput(event) {
this.setState({
textInput: event.target.value
})
}
onButtonClicked() {
this.setState({
searchButtonClicked: true
})
console.log(this.state);
}
render() {
return (
<div>
<h1> My Wikipedia API App </h1>
<input type="text" onChange={this.onTextInput}/>
<br/>
<button onClick={this.onButtonClicked}> Search </button>
</div>
)
}
}
export default Wikipedia;
提前致谢和问候
法比安
您还可以使用 async / await 来减少嵌套:
onButtonClicked = async() => {
await this.setState({
searchButtonClicked: true
});
console.log(this.state);
}