有没有办法让React组件中定义的事件处理程序在类似HTML的标记中可以访问?我的意思是:
<MyComp param1="abc" param2="def" onDoSomething={this.someMethod} />
我的目标是定义ondoSomething
,但目前我只知道如何创建诸如param1
和param2
之类的参数。
export interface MyCompProps {
param1: string;
param2: string;
}
export interface DoSomethingEvent {
someParam: string;
}
export class MyComp extends React.Component<MyCompProps, {}> {
private doSomethingDispatcher = new EventDispatcher<DoSomethingEvent>();
public onDoSomething(handler: Handler<DoSomethingEvent>) {
this.doSomethingDispatcher.register(handler);
}
private fireDoSomething(param: string) {
this.doSomethingDispatcher.fire({someParam: param});
}
}
如何使事件处理程序ondoSomething
通过TSX访问,类似于使用onclick
事件?
您可能会遇到问题,因为您当前没有向onDoSomething提供函数,但返回的结果是:
<MyComp param1="abc" param2="def" onDoSomething={this.someMethod()} />
应该是
<MyComp param1="abc" param2="def" onDoSomething={this.someMethod} />
问题内容: 我有一个LoginForm组件。我要检查之前提交,这两个和设置。我尝试使用此代码(省略了很多内容): 但是,我在事件处理程序中得到一个,说是空的。 我该怎么办? 问题答案: 你需要设置的方法,因为现在是,对于此操作,您可以使用 或者您可以使用箭头功能
问题内容: 由于某些原因,此值在反应事件处理程序中丢失。阅读我认为有反应的文档在这里做了一些工作,以确保将其设置为正确的值 以下内容不符合我的预期 但这确实是: React和ES6对我来说是新手,但这似乎不是正确的行为? 问题答案: 如果使用新语法,这对于JavaScript和React是正确的行为。 自动绑定功能不适用于 v0.13.0中的ES6类。 因此,您需要使用: 或其他技巧之一:
问题内容: 我有一个在React中创建的组件,该组件可以抽象出我的应用程序中的某些样式。我在两种不同的上下文中使用它- 一种用于提交登录表单,另一种用于导航到注册页面(以及将来可能的其他上下文)。 我试图弄清楚如何将事件处理程序从父组件传递到。我想为登录表单调用一个处理程序,但是为导航按钮调用一个处理程序。这可能吗? 我试过像这样调用组件: 我也尝试过删除arrow函数,这只会导致该函数在加载组件
如果我有以下代码: 对该循环中某个处理程序的所有调用是并行执行还是顺序执行?如果是顺序的,那么要获得并行执行,正确的方法是什么? 当做
主要内容:实例,向事件处理程序传递参数React 元素的事件处理和 DOM 元素类似。但是有一点语法上的不同: React 事件绑定属性的命名采用驼峰式写法,而不是小写。 如果采用 JSX 的语法你需要传入一个函数作为事件处理函数,而不是一个字符串(DOM 元素的写法) HTML 通常写法是: React 中写法为: 在 React 中另一个不同是你不能使用返回 false 的方式阻止默认行为, 你必须明确使用 preventDefa