使用 .map react native 映射发送的道具

法瑞斯

我有两个组件,一个叫做 homeScreen,第二个是卡,我在 homeScreen 中获取数据,我在通过 props 将状态发送到我的卡组件后将其设置为 state。现在我的卡片组件应该根据我发送给它的数据生成 9 张卡片,所以我做了映射,我收到了这个错误 TypeError: Cannot read property '0' of undefined。

我试图在 Card 组件中使用 console.log 道具,我可以看到数据,但由于某种原因,地图无法正常工作

卡.js

const Card = props => {
  Array.from({length: 9}).map((i, index) => {

console.log(props);
  return (
    <View style={{flex: 1}}>
      <Text style={{flex: 1, backgroundColor: 'red'}}>
        {props.title[1] ? `${props.title[index]}` : 'Loading'}
      </Text>
      <Text style={{flex: 1, backgroundColor: 'blue'}}>{props.rating[index]}</Text>
    </View>
  );
});
};
export default Card;

主屏幕.js

export default class HomeScreen extends React.Component {
  state = {
    title: [],
    image: [],
    rating: [],
    isLoading: true,
  };

  componentDidMount() {
    this.getData();
  }
  titleSend = () => {
    if (!this.state.isLoading) {
      {
        Array.from({length: 9}).map((i, index) => {
          return this.state.title[index];
        });
      }
    }
  };
  imageSetter = () => {
    Array.from({length: 9}).map((i, keys) => {
      return (
        <Image
          key={keys}
          style={{width: 50, height: 50, flex: 1}}
          source={{uri: this.state.image[keys]}}
        />
      );
    });
  };

  getData = () => {
    const requestUrls = Array.from({length: 9}).map(
      (_, idx) => `http://api.tvmaze.com/shows/${idx + 1}`,
    );

    const handleResponse = data => {
      const shows = data.map(show => show.data);
      this.setState({
        isLoading: false,
        title: shows.map(show => show.name),
        image: shows.map(show => show.image.medium),
        rating: shows.map(show => show.rating.average),
      });
      // console.log(this.state);
    };
    const handleError = error => {
      this.setState({
        isLoading: false,
      });
    };

    Promise.all(requestUrls.map(url => axios.get(url)))
      .then(handleResponse)
      .catch(handleError);
  };

  render() {
    const {isLoading, title, image, rating} = this.state;
    if (isLoading) {
      return <ActivityIndicator size="large" color="#0000ff" />;
    }
    return (
      <View style={{flex: 1, alignItems: 'center', justifyContent: 'center'}}>
        <ScrollView style={{flex: 1, backgroundColor: 'red'}}>
          <Card title={this.state.title} />
        </ScrollView>
        <Text>here images</Text>
      </View>
    );
  }
}
蓝色的

您使用的Array.from所有函数/方法都没有返回值。

例如你的Card组件:

const Card = props => {
  // note addition of `return` statement
  return Array.from({length: 9}).map((i, index) => {

console.log(props);
  return (
    <View style={{flex: 1}}>
      <Text style={{flex: 1, backgroundColor: 'red'}}>
        {props.title[1] ? `${props.title[index]}` : 'Loading'}
      </Text>
      <Text style={{flex: 1, backgroundColor: 'blue'}}>{props.rating[index]}</Text>
    </View>
  );
});
};
export default Card;

titleSendimageSetter方法也有类似的问题。

该指数的错误是因为你不及格的rating道具的Card组件,但你所访问props.rating[0]props.rating[1]等等。

return (
      <View style={{flex: 1, alignItems: 'center', justifyContent: 'center'}}>
        <ScrollView style={{flex: 1, backgroundColor: 'red'}}>
          // missing `rating` prop
          <Card title={this.state.title} />
        </ScrollView>
        <Text>here images</Text>
      </View>
    );

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在.map函数中使用react道具

来自分类Dev

如何使用react-native的TextInput的selectionState道具?

来自分类Dev

无法在React-Native中使用导航&&道具?

来自分类Dev

无法使用道具在 React Native 中设置样式

来自分类Dev

React Native类似于React的.map吗?

来自分类Dev

React:使用.map从多个数组获取道具

来自分类Dev

如何在React Native中使用数组映射JSON数据

来自分类Dev

如何使用 react native 映射 componentWillMount 中的嵌套数组

来自分类Dev

如何在映射 React Native 时使用 setState

来自分类Dev

使用React Native iOS发送电子邮件

来自分类Dev

如何使用React Native和Axios发送表单数据?

来自分类Dev

Rails API,如何从React Native接收使用FormData发送的照片

来自分类Dev

如何在React Native Expo中使用按钮发送通知

来自分类Dev

使用 React Native 通过 Twilio 发送短信 (SMS)?

来自分类Dev

如何使用React映射道具创建新元素

来自分类Dev

使用TypeScript和React-Redux时推断映射的道具

来自分类Dev

在React Native内部的对象数组上使用Map函数不起作用

来自分类Dev

如何在 React Native 中使用 map 来创建单独的按钮?

来自分类Dev

从使用 react native 中的 map 函数渲染的组件的父级调用子方法

来自分类Dev

使用 .map 和匿名函数时遇到问题(React Native)

来自分类Dev

无法在React Native render()中运行.map()

来自分类Dev

React Native Map (Airbnb) + Markers 动画

来自分类Dev

React Typescript如何发送道具并在子组件中使用

来自分类Dev

React Native:道具警告,无效的道具值

来自分类Dev

React Native中的客户映射

来自分类Dev

在React Native Navigation中,如何将道具发送到屏幕?

来自分类Dev

未处理的承诺拒绝:TypeError:undefined 不是评估“departureloc.map”的函数,当在 React Native 中映射 setState 时发生

来自分类Dev

使用React Native保存文件

来自分类Dev

使用React Native获取时区

Related 相关文章

  1. 1

    在.map函数中使用react道具

  2. 2

    如何使用react-native的TextInput的selectionState道具?

  3. 3

    无法在React-Native中使用导航&&道具?

  4. 4

    无法使用道具在 React Native 中设置样式

  5. 5

    React Native类似于React的.map吗?

  6. 6

    React:使用.map从多个数组获取道具

  7. 7

    如何在React Native中使用数组映射JSON数据

  8. 8

    如何使用 react native 映射 componentWillMount 中的嵌套数组

  9. 9

    如何在映射 React Native 时使用 setState

  10. 10

    使用React Native iOS发送电子邮件

  11. 11

    如何使用React Native和Axios发送表单数据?

  12. 12

    Rails API,如何从React Native接收使用FormData发送的照片

  13. 13

    如何在React Native Expo中使用按钮发送通知

  14. 14

    使用 React Native 通过 Twilio 发送短信 (SMS)?

  15. 15

    如何使用React映射道具创建新元素

  16. 16

    使用TypeScript和React-Redux时推断映射的道具

  17. 17

    在React Native内部的对象数组上使用Map函数不起作用

  18. 18

    如何在 React Native 中使用 map 来创建单独的按钮?

  19. 19

    从使用 react native 中的 map 函数渲染的组件的父级调用子方法

  20. 20

    使用 .map 和匿名函数时遇到问题(React Native)

  21. 21

    无法在React Native render()中运行.map()

  22. 22

    React Native Map (Airbnb) + Markers 动画

  23. 23

    React Typescript如何发送道具并在子组件中使用

  24. 24

    React Native:道具警告,无效的道具值

  25. 25

    React Native中的客户映射

  26. 26

    在React Native Navigation中,如何将道具发送到屏幕?

  27. 27

    未处理的承诺拒绝:TypeError:undefined 不是评估“departureloc.map”的函数,当在 React Native 中映射 setState 时发生

  28. 28

    使用React Native保存文件

  29. 29

    使用React Native获取时区

热门标签

归档