import React from 'react';
import ChildComponent from './ChildComponent';
class SampleComponent extends React.Component {
sampleCallbackOne = () => {
// does something
};
sampleCallbackTwo = () => {
// does something
};
render() {
return (
<div>
<ChildComponent
propOne={this.sampleCallbackOne}
propTwo={() => this.sampleCallbackTwo()}
/>
</div>
);
}
}
export default SampleComponent;
在此示例中,我正在处理一个onClick事件,并看到可以通过两种方式将其成功传递给组件的props。
我想知道两种方式的确切区别是什么,因为它们似乎以相同的方式起作用?
为什么两种方法都起作用?
这是一个很奇怪的共同点。
请参阅处理事件文档中的详细信息
// This binding is necessary to make `this` work in the callback
this.handleClick = this.handleClick.bind(this);
handleClick() {
console.log('this is:', this);
}
<button onClick={this.handleClick}>
如果不加()
身后this.handleClick
,你需要绑定this
在你的构造,否则,您可能希望使用接下来的两个方法:
在Create React App中默认启用
handleClick = () => {
console.log('this is:', this);
}
<button onClick={this.handleClick}>
可能会导致性能问题,建议不要使用,请参阅上面的文档。
// The same on event handling but different in:
<button
onClick={(e) => this.deleteRow(id, e)} // automatically forwarded, implicitly
/>
<button
onClick={this.deleteRow.bind(this, id)} // explicitly
/>
基本上在我们的实践中,我们使用带有参数的 公共类字段语法 ,如下所示:
// No need to bind `this` in constructor
// Receiving params passed by elements as well as getting events of it
handler = (value: ValueType) => (event: React.FocusEvent<HTMLInputElement | HTMLTextAreaElement>) => {
// Do something with passed `value` and acquired `event`
}
<NumberFormat
...
onBlur={this.handler(someValue)} // Passing necessary params here
/>
我们可以handler function
通过传递不同的参数来共享它们。
// Justify via keyword of stored content in flat data structure
handler = (value: string) => (event: React.ChangeEvent<HTMLInputElement>, id: ValidationItems) => {
// Do something with
// passed `value`,
// acquired `event`,
// for each element diffenced via `id`
};
<YourComponent
id="ID_1"
value={store.name1}
onChange={this.handler("name1")}
/>;
<YourComponent
id="ID_2"
value={store.name2}
onChange={this.handler("name2")}
/>;
// ... more similar input text fields
问题内容: 我已经出于好奇而开始学习 React ,并且想知道React和React Native之间的区别- 尽管使用Google找不到满意的答案。React和React Native似乎具有相同的格式。它们的语法完全不同吗? 问题答案: ReactJS是一个JavaScript库,它支持前端Web并在服务器上运行,用于构建用户界面和Web应用程序。它遵循可重用组件的概念。 React Nati
我刚刚开始使用Angular 2。 我想知道Angular 2中的组件和指令有什么区别?
给定组件中的两个按钮单击事件之间是否存在任何差异?哪一种是首选的写作方式?
问题内容: 在此示例中: 无法编译为: 而被编译器接受。 这个答案说明唯一的区别是,与不同,它允许您稍后引用类型,似乎并非如此。 是什么区别,并在这种情况下,为什么不第一编译? 问题答案: 通过使用以下签名定义方法: 并像这样调用它: 在jls§8.1.2中,我们发现(有趣的部分被我加粗了): 通用类声明定义了一组参数化类型(第4.5节), 每种可能通过类型arguments调用类型参数节的类型
因此,Java 8引入了方法引用,文档描述了这四种类型。 我的问题是这两种实例类型之间有什么区别? 对特定对象的实例方法的引用。 引用特定类型的任意对象的实例方法。 两者都引用了参考文献,但有什么显著不同?是不是用来解决它们的类型推断不同?(在他们的例子中)一个是闭包,另一个是lambda,这有意义吗?这与方法上的参数数量有关吗?
问题内容: 我正在制作一个简单,非常轻便的前控制器。我需要将请求路径匹配到不同的处理程序(操作),以便选择正确的处理程序。 在我的本地计算机上并返回相同的结果。但是我不确定他们将在生产环境中返回什么。 那么,这些方法有什么区别,我应该选择什么? 问题答案: 给出URI后面的额外路径信息,用于访问Servlet,其中给出完整的URI。 我本以为它们会有所不同,因为首先必须为Servlet配置自己的U