如何将道具传递给 React Big Calendar 自定义组件?
How to pass props to React Big Calendar custom components?
我正在使用带有自定义事件组件的 React Big Calendar。
在我的自定义组件中,我需要显示一些用户可以单击(通过弹出窗口)的按钮。
我的弹出窗口工作正常,但我还希望呈现 BigCalendar 的 class 在单击弹出窗口中的按钮时得到通知。我们如何将 "onButtonClick" 事件作为道具传递给我的自定义组件?
这是我的代码的简化版本
class Parent extends Component {
popoverButtonClickHandler = (e) => {
//handle button click
}
render() {
return (
<BigCalendar
...
events={myEvents}
components={{
event: CustomEvent
}}
/>
);
}
}
这是我的 CustomEvent class
class CustomEvent extends Component {
render() {
return (
<div>
<p>My event title: {this.props.title}</p>
<MyPopover>
<Button onClick={this.props.onPopoverButtonClick}>
</MyPopover>
</div>
)
}
}
我正在想办法通过
onPopoverButtonClick={this.popoverButtonClickHandler}
添加到我的 CustomEvent,以便在单击按钮时通知家长。
有什么办法可以实现吗?
谢谢
好的,在查看 GitHub
上的 here 后,我设法让它工作了
class Parent extends Component {
popoverButtonClickHandler = (e) => {
//handle button click
}
render() {
return (
<BigCalendar
...
events={myEvents}
components={{
event: CustomEventContainer({
onPopoverButtonClick: this.popoverButtonClickHandler
})
}}
/>
);
}
}
这里是 CustomEvent 容器和 CustomEvent
const CustomEventContainer = ({ onPopoverButtonClick }) => props => {
return <CustomEvent event={props} onPopoverButtonClick={onPopoverButtonClick} />;
}
const CustomEvent = React.memo((props) => {
//...
return (
<div>
<Button content='View' onClick={(e) => props.onPopoverButtonClick(e)} />
</div>
);
})
我正在使用带有自定义事件组件的 React Big Calendar。
在我的自定义组件中,我需要显示一些用户可以单击(通过弹出窗口)的按钮。 我的弹出窗口工作正常,但我还希望呈现 BigCalendar 的 class 在单击弹出窗口中的按钮时得到通知。我们如何将 "onButtonClick" 事件作为道具传递给我的自定义组件? 这是我的代码的简化版本
class Parent extends Component {
popoverButtonClickHandler = (e) => {
//handle button click
}
render() {
return (
<BigCalendar
...
events={myEvents}
components={{
event: CustomEvent
}}
/>
);
}
}
这是我的 CustomEvent class
class CustomEvent extends Component {
render() {
return (
<div>
<p>My event title: {this.props.title}</p>
<MyPopover>
<Button onClick={this.props.onPopoverButtonClick}>
</MyPopover>
</div>
)
}
}
我正在想办法通过
onPopoverButtonClick={this.popoverButtonClickHandler}
添加到我的 CustomEvent,以便在单击按钮时通知家长。
有什么办法可以实现吗? 谢谢
好的,在查看 GitHub
上的 here 后,我设法让它工作了class Parent extends Component {
popoverButtonClickHandler = (e) => {
//handle button click
}
render() {
return (
<BigCalendar
...
events={myEvents}
components={{
event: CustomEventContainer({
onPopoverButtonClick: this.popoverButtonClickHandler
})
}}
/>
);
}
}
这里是 CustomEvent 容器和 CustomEvent
const CustomEventContainer = ({ onPopoverButtonClick }) => props => {
return <CustomEvent event={props} onPopoverButtonClick={onPopoverButtonClick} />;
}
const CustomEvent = React.memo((props) => {
//...
return (
<div>
<Button content='View' onClick={(e) => props.onPopoverButtonClick(e)} />
</div>
);
})