我对此代码有疑问:https
:
//github.com/reactjs/redux/blob/master/examples/async/containers/App.js
特别:
constructor(props) {
super(props)
this.handleChange = this.handleChange.bind(this)
this.handleRefreshClick = this.handleRefreshClick.bind(this)
}
我猜这是一个两部分的问题。
this.handleChange =
我不能只对handleChange使用静态函数并直接在类中调用它 onClick={handleRefreshClick}>
?this.handleRefreshClick.bind(this)
谢谢
以相反的顺序回答…
this.handleRefreshClick.bind(something)
返回一个新函数,其中对的引用this
将引用something
。这是一种保存的当前值的方法this
,该值在调用构造函数期间处于作用域内,以便稍后在调用函数时可以使用它。
如果您的函数不需要访问组件的状态,那么可以肯定,您不需要绑定它们。
支持将这些行添加到构造函数的观点是,每个类的实例仅创建一次新的绑定函数。您也可以使用
onClick={this.handleRefreshClick.bind(this)}
或(ES6):
onClick={() => this.handleRefreshClick()}
但是,每次重新渲染组件时,这两种方法都会创建一个新函数。
问题内容: 必须使用无参数构造函数(像Hibernate这样的工具会在此构造函数上使用反射来实例化对象)。 我得到了这个手挥手的答案,但是有人可以进一步解释吗?谢谢 问题答案: hibernate,并且通常通过反射创建对象的代码用于创建类的新实例。此方法需要一个公共的无参数构造函数才能实例化该对象。对于大多数用例,提供无参数构造函数不是问题。 有一些基于序列化的技巧可以解决没有no-arg构造函数
我问这个问题是因为在Python和Java中,如果父类构造函数需要0参数,则不需要调用super()。 Javascript 蟒蛇 Java
一个更一般的问题。如果在常规Spring托管类中使用构造函数注入,则这些类将自动连接,而不需要@autowired注释,即: 在@SpringBootTest类中遵循相同的构造函数注入原则,您需要将@Autowired注释设置为构造函数参数,否则它将无法注入该类,即: 为什么会出现这种差异?
问题内容: 使用Promises时,为什么不能在代码库的其他地方触发并定义? 我不明白为什么,应该在声明诺言的地方本地化逻辑。这是疏忽大意,还是强制执行此参数有好处吗? 我相信执行程序功能应该是可选的,并且它的存在应该确定promise是否封装了解决方案。没有这样的授权,promise的可扩展性就更大,因为您不必立即启动异步。承诺也应该是可重置的。这是1档开关,1或0 或。可以附加许多平行和顺序的
问题内容: 这有任何重要目的吗?可以省略吗? 问题答案: 并非总是必要的,但是它确实有其用途。假设我们想在基类上创建一个复制方法。像这样: 现在,当我们创建一个新的并复制它时会发生什么? 该副本不是的实例。这是因为(没有显式检查),我们无法从“基本”类返回副本。我们只能返回。但是,如果我们重置了构造函数: …然后一切都按预期进行:
想改进这个问题吗 通过编辑此帖子,添加详细信息并澄清问题。 我问这个问题是因为在Python和Java中,如果父类构造函数需要0参数,则不需要调用super()。 Javascript 蟒蛇 Java语言