如何在React中将状态变量值传递给非子组件

时间:2019-01-28 04:02:18

标签: reactjs react-redux

我有一个从firebase读取数据的功能,我想将检索到的数据传递给其他非子组件...以下是我的代码。...

 readdata() {
    var ref = fire.database().ref('Employers');
     ref.on("value", (snapshot) => {
        var joblist = []; 
          snapshot.forEach((child)=> {
             child.forEach((child1)=>{
             joblist.push(child1.val())
              let newState = [];
                 for (let item in joblist) {
                 newState.push({
                     id: item,
                     title: joblist[item].Title,
                     description: joblist[item].Description,
                     location: joblist[item].Location,
                     rateperhour: joblist[item].RatePerHour,
                 });
                 this.setState({
                    slidercontents: newState
                }); 
            }  
        }) 
        this.setState({empname : child.key})  
        });  

    });

 }

2 个答案:

答案 0 :(得分:0)

如果要将数据传递给父组件,则可以在props中传递函数,然后在参数中发送数据。例如

<MyComponent
  sendData={(data) => {console.log(data)}}
/>
// in component
this.props.sendData(data)

其他方法正在使用react context api hereredux

答案 1 :(得分:0)

您可以将数据存储在localStorage中,然后从本地存储中将其取回非子组件中。但是在这里使用redux是最好的选择。