Javascript React中setState处理程序的问题

Javascript React中setState处理程序的问题,javascript,google-chrome,reactjs,babeljs,Javascript,Google Chrome,Reactjs,Babeljs,我只是试图通过react中的处理程序更改组件的状态,但在执行函数时,状态不会更改。这里有处理程序、状态、集合状态和组件,我将它们作为属性发送给处理程序 顺便说一句:我正在使用带有babel loader的网页包 export default class Game extends React.Component{ constructor(){ super() this.state={ pause: null } } PauseShow(){ thi

我只是试图通过react中的处理程序更改组件的状态,但在执行函数时,状态不会更改。这里有处理程序、状态、集合状态和组件,我将它们作为属性发送给处理程序

顺便说一句:我正在使用带有babel loader的网页包

export default class Game extends React.Component{
constructor(){
    super()
    this.state={
        pause: null
    }

}
PauseShow(){
    this.setState={ pause: "block" }
    console.log("pauseshow")
}
PauseHide(){
    this.setState={ pause: "none" }
    console.log("pausehide")
}
render(){

    return(
        <div className="big-box">
            <Player idc="Game" src="assets/Fly_Me_to_the_Aegis_Seven_Moon.mp3"/>
            <GameOutput/>
            <GameData pauseMethod={this.PauseShow.bind(this)}/>
            <GameInput />
            <GamePause display={this.state.pause} pauseMethod={this.PauseHide.bind(this)}/>

        </div>
    )
}
导出默认类Game.Component{
构造函数(){
超级()
这个州={
暂停:空
}
}
PauseShow(){
this.setState={pause:“block”}
console.log(“pauseshow”)
}
PauseHide(){
this.setState={pause:“none”}
console.log(“pausehide”)
}
render(){
返回(
)
}
} 阿奎拉莫·阿尔·汉德勒是个道具

export default class GameData extends React.Component{
constructor(){
    super()
}
render(){
    return(
        <div id="GameData">
            <button onClick={this.props.pauseMethod}>pause</button>
        </div>

    )
}
导出默认类GameData.Component{
构造函数(){
超级()
}
render(){
返回(
暂停
)
}
} 在这里,当单击使处理程序执行的按钮时,控制台会显示错误


backend.js:8730未捕获类型错误:inst.setState.bind不是getData(chrome)的函数-extension://fmkadmapgofadopljbjfkapdkoienihi/build/backend.js:8730:49)在walkNode(铬)-extension://fmkadmapgofadopljbjfkapdkoienihi/build/backend.js:8576:57)在铬-extension://fmkadmapgofadopljbjfkapdkoienihi/build/backend.js:8579:15 在walkNode(chrome)的Array.forEach(本机)上-extension://fmkadmapgofadopljbjfkapdkoienihi/build/backend.js:8578:20)在铬-extension://fmkadmapgofadopljbjfkapdkoienihi/build/backend.js:8579:15 位于walkNode的Array.forEach(本机)(铬-extension://fmkadmapgofadopljbjfkapdkoienihi/build/backend.js:8578:20)在铬-extension://fmkadmapgofadopljbjfkapdkoienihi/build/backend.js:8579:15 在Array.forEach(native)

中,无法将状态更新为
this.setState{pause:“block”}
。您的状态是一个函数,需要将对象作为参数传递给它。因此:

this.setState({pause: "block"})
是更新状态的正确方法

请参阅此代码:

class Test extends React.Component {
  constructor(){
      super();
      this.state = {
        text: ""
      }
  }
  pauseMethod(){
      this.setState({text: "paused"}, () => console.log(this.state.text))
  }

  render(){
    return (
        <div><GameData pauseMethod={this.pauseMethod.bind(this)} /></div>
      )
  }
}

class GameData extends React.Component{      
  render(){
      return(
          <div id="GameData">
              <button onClick={this.props.pauseMethod}>pause</button>
          </div>
      )
  }
}

React.render(<Test />, document.getElementById('container'));
类测试扩展了React.Component{
构造函数(){
超级();
此.state={
案文:“”
}
}
pauseMethod(){
this.setState({text:“暂停”},()=>console.log(this.state.text))
}
render(){
返回(
)
}
}
类GameData扩展React.Component{
render(){
返回(
暂停
)
}
}
React.render(,document.getElementById('container');

您可以更改
此.setState({pause:“none”})
此.setState={pause:“none”}和其他状态的瞬间


阅读文档附加信息:

setState
是一个接受新状态作为参数的函数。
this.setState({pause:'block})
请用英语替换西班牙语