javascript - 如何在react中传递状态?

标签 javascript

我需要在点击提交时获取“+”或“-”结果,但完全不知道如何处理。这是我点击“提交”之前的代码和结果

class App extends React.Component {
  constructor() {
    super();
    this.state = {counter: 0};
    
  }
  
  render() {
    return (
      <div>
        <button onClick={this.increment}>+</button>
        <output>{this.state.counter}</output>
        <button onClick={this.decrement}>-</button>
        <button onClick={this.submit}>submit</button>
      </div>
    );
  }
  
  increment =()=> {
    this.setState({
      //counter: this.state.counter + 1
    })
  }
  
  decrement=()=> {
   
    this.setState({
      //selectedFunction= -1??
    })
  }
  submit=(selectedFunction)=>{this.setState({
      counter: this.state.counter + {selectedFunction}
    })};
}
ReactDOM.render(<App />, document.getElementById("app"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>

最佳答案

您应该在构造函数内绑定(bind)增量和减量函数,并仅将方法作为 onClick 属性传递。

class App extends React.Component {
  constructor() {
    super();
    this.state = {counter: 0};
    this.increment = this.increment.bind(this);
    this.decrement = this.decrement.bind(this);
  }

  render() {
    return (
      <div>
        <button onClick={this.increment}>+</button>
        <output>{this.state.counter}</output>
        <button onClick={this.decrement}>-</button>
      </div>
    );
  }

  increment() {
    this.setState(function(prevState){
      return { counter: prevState.counter + 1 }
    });
  }

  decrement() {
    this.setState(function(prevState){
      return { counter: prevState.counter - 1 }
    });
  }
}
ReactDOM.render(<App />, document.getElementById("app"));

关于javascript - 如何在react中传递状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57757427/

相关文章:

javascript - Node.js v12.x 如何设置 Error.code 属性?

javascript - 同时执行两个功能

javascript - 选择框上的 Angularjs ngKeyup 不起作用

javascript - 一个 Node 模块可以利用它所依赖的 Node 模块的依赖关系吗?

javascript - Angular js $范围错误

javascript - 当我下降到使用 ng-repeat 创建的元素时如何向下滚动

javascript - w3.css topnav 在小屏幕上

javascript - CoffeeScript 调用返回对象的方法(链接)

javascript - 在 ES6 中使用词法 this

javascript - 在 WebStorm 上期待换行符或分号错误