Javascript 状态仅在第二次单击时实现
基本上,当用户单击按钮时,我想将Javascript 状态仅在第二次单击时实现,javascript,reactjs,react-router,react-state,Javascript,Reactjs,React Router,React State,基本上,当用户单击按钮时,我想将searchButtonClicked的state属性设置为true。问题是当第一次单击按钮时,以及当用户进入smth时searchButtonClicked保持为false{textInput:“frw”,searchButtonClicked:false}仅在第二次单击searchButtonClicked时变为true。{textInput:“frw”,searchButtonClicked:true} 出了什么问题?以下是组件: import React,
searchButtonClicked
的state属性设置为true。问题是当第一次单击按钮时,以及当用户进入smth时searchButtonClicked
保持为false{textInput:“frw”,searchButtonClicked:false}
仅在第二次单击searchButtonClicked时变为true。{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;
import React,{Component}来自'React';
从“react router”导入{Redirect};
类Wikipedia扩展组件{
建造师(道具){
超级(道具);
此.state={
文本输入:“”,
searchButtonClicked:false
}
this.ontextireput=this.ontextireput.bind(this);
this.onButtonClicked=this.onButtonClicked.bind(this);
}
输出(事件){
这个.setState({
text输入:event.target.value
})
}
onButtonClicked(){
这个.setState({
searchButtonClicked:true
})
console.log(this.state);
}
render(){
返回(
我的维基百科API应用程序
搜寻
)
}
}
导出默认维基百科;
提前表示感谢和问候
Fabian您也可以使用async/Wait来减少嵌套:
onButtonClicked = async() => {
await this.setState({
searchButtonClicked: true
});
console.log(this.state);
}
setState
是异步函数。更改不会立即显示。您可以将控制台传入setState回调函数或传入呈现函数好的,你们说得对!非常感谢。