Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 状态仅在第二次单击时实现_Javascript_Reactjs_React Router_React State - Fatal编程技术网

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回调函数或传入呈现函数