如何通过ReactJS将一个类从render方法包装到OnClickOutside?

时间:2016-09-30 19:44:34

标签: javascript reactjs emoji emojione

我正在使用EmojiPicker和ReactJS。如果我点击外面的话,我必须关闭EmojiPicker。怎么做?我正在尝试使用onClickOutside,但我需要将EmojiPicker包装到其中并添加特殊方法,该方法将更改Conversation类的状态(isOpened为false)。首先,我必须向EmojiPicker添加handleClickOutside方法,这会将Conversation的状态(isOpened)更改为false。

以下是我的代码示例:

class Conversation extends React.Component {
    constructor() {
        super();
        this.state = {
            isOpened: false
        }
    }
    render(){
        return (
            <div>
                ...OTHER THINGS...

                <EmojiPicker className={this.state.isOpened ? " " : "display-none"} />

                ...OTHER THINGS...
            </div>
        )
}
export default  OnClickOutside(EmojiPicker);

有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

我发现这篇关于为组件提供动态超类的有趣文章。它的方法很可能适用于这个用例。 http://www.mikedoesweb.com/2017/dynamic-super-classes-extends-in-es6/