如何从其他组件触发反应组件

时间:2016-09-28 05:56:09

标签: reactjs components redux react-redux

我想从其他组件触发反应组件。最好的方法是什么?我不想在redux商店创建新旗帜,例如" shouldShowMenu"。我在思考反应中的静态方法,但我并不专心反应。

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

我可以使用这样的静态方法,我应该使用静态方法更改组件状态。

2 个答案:

答案 0 :(得分:1)

您应该继续在redux商店中创建Thread _RunYouLongTime = new Thread(delegate); _RunYouLongTime.Start(); while (_RunYouLongTime.IsAlive) { System.Threading.Thread.Sleep(100); } 标志。一旦组件以这种方式交互,它就是一个应用程序状态。一开始看起来似乎过分,但是一旦你开始拥有一个跨组件共享的值,这将为你节省很多麻烦!

答案 1 :(得分:1)

您不需要redux。您可以使用ref执行此操作。希望它有所帮助!

<script src="https://unpkg.com/babel-core@5.8.38/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
  	  this.refs.hello.func()
    },
    render: function() {
      return <Hello ref="hello"/>;
   }
  })


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

</script>