2016-09-28 15 views
0

他のコンポーネントから反応コンポーネントをトリガーしたい。それを行う最善の方法は何ですか?私は "shouldShowMenu"のようなreduxストアに新しいフラグを作成したくありません。私は反応の静的な方法について考えていますが、私は反応の専門家ではありません。他のコンポーネントから反応コンポーネントをトリガーする方法

import Menu from './component/menu' 
const clickfeed =() => {Menu.staticClickEvent()} 
<Provider> 
    <Menu> 
    <Feed onClick={clickfeed}/> 
</Provider> 

このような静的メソッドを使用することはできますか?静的メソッドを使用してコンポーネントの状態を変更する必要があります。

答えて

1

あなたはreduxストアにそのshouldShowMenuフラグを作成する必要があります。そのようなやり方でコンポーネントを操作すると、それはアプリケーションの状態です。最初は過度に思えるかもしれませんが、いったんコンポーネント間で共有される価値が始まると、頭痛の種をたくさん節約できます!

+0

うん、ありがとう。私はこのように先に進むべきです。あなたは、いつ反応コンポーネントで静的メソッドを使うべきか知っていましたか? –

0

これにはreduxは必要ありません。これを行うにはrefを使用できます。それが役に立てば幸い!

<script src="https://unpkg.com/[email protected]/browser.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script> 
 

 
<div id="container"></div> 
 
<script type="text/babel"> 
 
//component 1 
 
    var Hello = React.createClass({ 
 
    func: function() { 
 
     console.log('I\'m inside Hello component') 
 
    }, 
 
    render: function() { 
 
     return <div > Hello World< /div>; 
 
    } 
 
    }); 
 

 

 
//component 2 
 
    var Hello2 = React.createClass({ 
 
    componentDidMount(){ 
 
    //calling the func() of component 1 from component 2 using ref 
 
    \t this.refs.hello.func() 
 
    }, 
 
    render: function() { 
 
     return <Hello ref="hello"/>; 
 
    } 
 
    }) 
 

 

 
ReactDOM.render(< Hello2/> , 
 
    document.getElementById('container') 
 
); 
 

 
</script>

関連する問題