作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我有这个 React JS 项目,但我遇到了这个问题:我的应用程序看起来像这样(它更复杂,但这就是我所说的...):
<App>
<Container>
<Item />
</Container>
<Button />
</App>
我需要做的是当我点击 Button 时在 Item 中调用一个方法。我在想我可以做一些事情,比如通过 Prop 将事件从 App 发送到 Item。所以它看起来像这样:
class App extends React.Component{
...
event buttonClicked `\\idk something like this...`
...
render(
<div>
<Container event={buttonClicked} />
<Button onClick={buttonClicked} />
</div>
)
...
}
class Container extends React.Component{
...
render(
<Item event={this.props.event}/>
)
...
}
class Item extends React.Component{
_buttonClicked(){
... `\\This happens when I click the button.`
}
...
}
这样的事情可能吗?谢谢:)
最佳答案
想法是将绑定(bind)的事件处理程序向下传递到子组件中,然后将事件冒泡。你所描述的基本上是正确的
你可以在这里做的是:
App
中定义buttonClickHandler
buttonClickHandler
传入Button
buttonClickHandler
的结果或操作传递到您的项目容器中。 Prop 还有多种其他方法可以做到这一点:
Multiple patterns存在就是为了做到这一点:
关于javascript - react JS : How to send an event down the component tree?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49719765/
我是一名优秀的程序员,十分优秀!