reactjs - : this. method.bind(this)有什么用

标签 reactjs redux

这个问题在这里已经有了答案:





What is the use of the JavaScript 'bind' method?

(22 个回答)


5年前关闭。




我正在研究 Reactjs 并且有这样的代码块:

import React from 'react';

class App extends React.Component {
   constructor() {
      super();

      this.state = {
         data: []
      }

      this.setStateHandler = this.setStateHandler.bind(this);
   };

   setStateHandler() {
      var item = "setState..."
      var myArray = this.state.data;
      myArray.push(item)
      this.setState({data: myArray})
   };

   render() {
      return (
         <div>
            <button onClick = {this.setStateHandler}>SET STATE</button>
            <h4>State Array: {this.state.data}</h4>
         </div>
      );
   }
}

export default App;

单击按钮后,将出现“setState...”字符串。但我不明白 this.setStateHandler.bind(this); 的用法功能。
任何人都可以为我解释一下吗?

最佳答案

this.setStateHandler().bind(this)为函数 setStateHandler() 设置上下文成为类对象。这是必要的,以便您可以调用 this.setState({...})在方法内部,因为 setState()React.Component的方法.如果你不.bind(this)你会得到一个错误 setState()方法未定义。

关于reactjs - : this. method.bind(this)有什么用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42434232/

相关文章:

java - 尝试为 React Native 项目构建 APK 文件时出错

reactjs - 在 Material-UI CardMedia 中显示加载器

javascript - 获取模拟 : GLOBAL is not defined

reactjs - React 组件中的 JSX 将西里尔文文本显示为 habra-codabra

javascript - React Redux onBlur 事件在 Safari 和 Firefox 中未触发

css - div之间的过渡ReactJS

javascript - React 组件设置其子组件的 onClick ...如何使其适用于所有类型的子组件

reactjs - 如何修改reducer中已有的数据?

node.js - 通过 axios 设置 Redux 存储的默认状态

javascript - 您必须将组件传递给 connect 返回的函数。而是收到了 undefined