我有一个包含一个按钮的标题组件,并且我希望该按钮在单击时显示另一个组件(模式页面)。
我可以做这样的事情:
这是我的标头组件:
import ComponentToDisplay from './components/ComponentToDisplay/index'
class Header extends React.Component {
constructor(props) {
super(props)
}
props : {
user: User
}
_handleInvitePlayerClick = () => {
this.refs.simpleDialog.show();
}
render(){
return(
<Button onClick={this._handleInvitePlayerClick} ><myButton/></Button>
<ComponentToDisplay />
)
}
}
这是我的模态页面组件,单击其他组件上的按钮时应显示该组件页面:
class ComponentToDisplay extends React.Component {
componentDidMount() {
}
render() {
return (
<div>
<SkyLight
ref="simpleDialog"
title={"Title for the modal"}>
{"Text inside the modal."}
<Button onClick={() => this.refs.simpleDialog.hide()}>{"Close modal"}</Button>
</SkyLight>
</div>
)
}
}
用于模态的库:https :
//github.com/marcio/react-skylight
更像这样:
class Header extends React.Component {
constructor(props) {
super(props)
}
props: {
user: User
}
render() {
return (
<Button onClick={() => this.refs.componentToDisplay.showMe()}><myButton /></Button>
<ComponentToDisplay ref="componentToDisplay" />
)
}
}
确保showMe()
在子组件上公开一个方法:
class ComponentToDisplay extends React.Component {
showMe() {
this.refs.simpleDialog.show();
}
render() {
return (
<div>
<SkyLight
ref="simpleDialog"
title={"Title for the modal"}>
{"Text inside the modal."}
<Button onClick={() => this.refs.simpleDialog.hide()}>{"Close modal"}</Button>
</SkyLight>
</div>
)
}
}
基本上,这是在将SkyLight的show()
方法包装在子组件自己的方法中(在本例中为showMe()
)。然后,在父组件中,向包含的子组件中添加一个引用,以便您可以引用它并调用该方法。
问题内容: 我有两个组成部分。我想从第二个组件中调用第一个组件的方法。我该怎么做? 这是我的代码。 第一部分 第二部分 问题答案: 你可以做这样的事情 使用静态
在这里,我只想确保抛出异常测试,但希望跳过调用方法在其中。我试着跟着走,但没有奏效
假设我有以下名为Home的组件: 在PostForm组件与新Post一起提交后,我将如何更新主状态,或者如何从api重新获取数据。
嗨,我有一个对象,它正在使用一个组件中的可观察到的东西从api更新,我想捕获同一对象对另一个组件的更改。这两个组件都是两个选项卡。最初是根据路由更新数据。以下是正在更新的数据: 我在这里捕获数据: 在中,数据最初是从路由获取的。考虑到上述情况,我有两个问题: 如果应用程序有多个组件,我想我必须在每个组件中事件,这将是一个很好的做法。请提出任何替代方法? 由于数据来自服务器,为什么不从中的获取更新的
我知道我们在函数组件中使用history.push(),并对重定向路由做出反应。但是在类组件中,我们如何在点击按钮时重定向
我有两个组件,如下所示,我想从另一个组件调用一个函数。这两个组件都包含在第三个父组件 using 指令中。 构成部分1: 我尝试过使用和但我不知道如何使用它以及如何调用该函数,任何人都可以帮忙吗?