Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 将本机传递状态反应到另一个组件_Reactjs_React Native - Fatal编程技术网

Reactjs 将本机传递状态反应到另一个组件

Reactjs 将本机传递状态反应到另一个组件,reactjs,react-native,Reactjs,React Native,我在通过州议会时遇到了一些麻烦 我想从EventsApi获取传递给Event的状态 这是我的父组件: export default class EventsApi extends React.Component { constructor(props) { super(props); this.state = { jsondata: ["TEST1"], }; } render() { return ( <View> <Event data

我在通过州议会时遇到了一些麻烦

我想从EventsApi获取传递给Event的状态

这是我的父组件:

export default class EventsApi extends React.Component {
constructor(props) {
 super(props);

    this.state = {
     jsondata: ["TEST1"],
 };
} 
render() {
return (
  <View>
    <Event data={this.state.jsondata} />
  </View>
  );
 }
}
export default class Event extends React.PureComponent {

render() {

return (
  <View>
    <FlatList
      data={this.props.jsondata}
      renderItem={({ item }) => (
        <NormalText>
          {item}
        </NormalText>
      )}
    />
  </View>
  );
 }
}
这是我的子组件:

export default class EventsApi extends React.Component {
constructor(props) {
 super(props);

    this.state = {
     jsondata: ["TEST1"],
 };
} 
render() {
return (
  <View>
    <Event data={this.state.jsondata} />
  </View>
  );
 }
}
export default class Event extends React.PureComponent {

render() {

return (
  <View>
    <FlatList
      data={this.props.jsondata}
      renderItem={({ item }) => (
        <NormalText>
          {item}
        </NormalText>
      )}
    />
  </View>
  );
 }
}

在事件中用数据替换jsondata,如下所示。因为您正在以props中的数据形式传递您的状态

<FlatList
      data={this.props.data}
      renderItem={({ item }) => (
        <NormalText>
          {item}
        </NormalText>
      )}
    />

在事件中用数据替换jsondata,如下所示。因为您正在以props中的数据形式传递您的状态

<FlatList
      data={this.props.data}
      renderItem={({ item }) => (
        <NormalText>
          {item}
        </NormalText>
      )}
    />

您所做的错误是您正在App.js中传递事件。它应该是EventsApi:

改变

<View>
      <Event></Event>
    </View>

对expo进行了一些更改,请检查以下内容:


希望这有帮助

你做错了的事情是你在App.js中传递事件。它应该是EventsApi:

改变

<View>
      <Event></Event>
    </View>

对expo进行了一些更改,请检查以下内容:


希望这有帮助

问题到底在哪里?问题是事件中的{item}为空。我对视图类中的事件进行调用,简单如下:。因此,它从EventsApi->Events(如图所示)转到ViewClass。问题到底在哪里?问题是事件中的{item}为空。我对视图类中的事件进行调用,简单如下:。所以它从EventsApi->Events(如图所示)转到ViewClass。它仍然不起作用。我就是不明白为什么它不起作用。到目前为止尝试了很多东西。我忘了提到的是,我在这样的视图类中调用事件,这会导致任何问题吗?比如它丢失了状态还是什么?有必要包装视图类吗?在这种情况下是的。因为EventsApi是我的fetch-只是尝试简化问题,然后我设置事件组件的样式,最终在视图类中呈现,并使用一系列其他内容。问题可能出现在NormalText组件中吗?@M4RXX您可以共享您的控制台吗?请共享事件中的logthis.props或共享代码沙盒url。它仍然不起作用。我就是不明白为什么它不起作用。到目前为止尝试了很多东西。我忘了提到的是,我在这样的视图类中调用事件,这会导致任何问题吗?比如它丢失了状态还是什么?有必要包装视图类吗?在这种情况下是的。因为EventsApi是我的fetch-只是尝试简化问题,然后我设置事件组件的样式,最终在视图类中呈现,并使用其他一些东西。问题可能在NormalText组件中吗?@M4RXX您可以共享您的控制台吗?请共享事件中的logthis.props或共享代码沙盒url。非常感谢!我没有得到的是,它是如何从父母->孩子->视图中消失的。非常感谢!我没有得到的是,它如何不从父->子->视图。