使用访存设置状态时如何将状态属性从一个组件传递到另一状态

时间:2020-07-17 10:32:22

标签: reactjs react-native

我正在尝试获取json数据数组,然后将单个json对象从该数组传递给另一个子组件以呈现UI。 我已经从Snack.io中获取了在线示例,然后添加了它,然后调用我的Web服务来获取类似的json数组。但是它不起作用。 我使用的小吃:https://snack.expo.io/embedded/@aboutreact/expandable-listview?preview=true&platform=ios&iframeId=qn4os3zz2g&theme=dark

我正在尝试以下代码从ws获取json数据:

componentDidMount = () => {
    fetch('http://192.168.0.105:8080/pos3', {
      method: 'GET'
    })
      .then((response) => response.json())
      .then((responseJson) => {
        //console.log("123 printing response json");
        //console.log(responseJson);
        console.log("printing result json - 1");
        console.log(responseJson.dataSource[0].datasets[0]);
        console.log("labels:::" + responseJson.labels);
        console.log("-----------FILTERED ARRAY----------");
        console.log("=>");
        //const c1 = responseJson.dataSource.datasets.filter(i1 => i1.name==="AHTCMSP01").filter(i2 => i2.type==="baseline").filter(i3 => i3.process==="dataSync");
        //console.log(c1[0]);
        console.log("=><=");
        const dSource = responseJson.dataSource;
CONTENT = responseJson.dataSource;
        const specificData =
          dSource.map((value, placeindex) => {

            const dValue = value;
            console.log("---------> FOR EACH DATASOURCE:" + dValue.catagory);
            console.log("---------> data[0]:" + dValue.datasets[0].data);
            console.log("---------> data[1]:" + dValue.datasets[1].data);

          });

        const dataSourceNames = responseJson.dataSourceName;
        
        dataSourceNames.map((value, i) => {
          console.log("==========> FOR EACH dataSpurceName:" + value);
          //console.log("==========> related datasets are:" + responseJson.dataSource.filter(ds => ds.catagory===value)[0].datasets[0].data);
          console.log("==========> related datasets are:" + responseJson.dataSource.filter(ds => ds.catagory === value));

        });

        this.setState({
          dataSource: responseJson.dataSource,
          dataSourceNames: responseJson.dataSourceName,
          labels: responseJson.labels,
          isLoading: false
        })
      })
      .catch((error) => {
        console.error(error);
      });
  }

但是我无法在状态中设置响应并使用props在子组件中传递状态值:

         <ExpandableItemComponent
              key={item.category_name}
              onClickFunction={this.updateLayout.bind(this, key)}
              item={item}  data={this.state.dataSource}
            />

如何实现这一目标... 我收到未定义的错误。

请帮助! ... 谢谢进阶

0 个答案:

没有答案