android - 接收 TypeError: undefined is not a function (near'...posts.map...') React-Native / Rails 6.0 API
问题描述
我正在尝试在 iPhone/Android 设备上运行我的 Expo 应用程序,但我收到了
“未定义不是函数(靠近'...posts.map...')”
但是该应用程序在 iOS 模拟器上运行......它确实在 Android 模拟器上显示了错误。我对 React Native 很陌生,我试图弄清楚为什么它没有返回我的 iPhone(物理)和 Android Emulator 的对象。
完整的错误如下,我编写的代码将跟随它。如何解决此 TypeError 问题并在我的 iPhone/Android 模拟器上正确显示结果?
完全错误:
TypeError: undefined is not a function
(near'...posts.map')
This error is located at:
in Home (created by
Context.Consumer)
in Route (at App.js:21)
in Switch (at App.js.30)
in RCTSafeAreaView (at SafeAreaView.js:55)
in SafeAreaView (at App.js:19)
in App (at App.js:35)
in Router (created by Memory Router)
....
我的反应原生代码:
import React, {useState, useEffect} from 'react';
import Axios from 'axios'
import {ScrollView} from 'react-native';
import PhotoPost from '../components/PhotoPost';
import ErrorBoundary from 'react-native-error-boundary'
const Home = () => {
const [posts, setPosts] = useState([]);
useEffect( () => {
Axios.get('http://127.0.0.1:3000/image_post/index')
.then(res => {
setPosts(res.data)
}).catch(e => setPosts(e.message))
}, []);
return (
<ScrollView>
<ErrorBoundary>
{posts.map((posts, index) => {
return(
<PhotoPost key={index} post={post} />
)
})}
</ErrorBoundary>
</ScrollView>
)
}
export default Home
解决方案
您应该使用 (post, index) 而不是 (posts, index),因为您在组件 PhotoPost 中使用了变量 post。
<ErrorBoundary>
{posts.map((post, index) => {
return(
<PhotoPost key={index} post={post} />
)
})}
</ErrorBoundary>
推荐阅读
- python - 应用返回包含列表的元组的函数时出现 Pandas AssertionError
- docker - 容器优化操作系统 (Docker) 上的 SSL 证书
- uwp - UWP 地图控件 - 调整 MapIcon 图像的大小
- c# - 创建不重复调用代码的类
- node.js - 在 Node.js 中读取计算机的声音输出并分析声音
- python - 如何设置索引 NaN(空单元格)
- css - 如何在 Cypress 中访问下拉选择,出现错误:元素已与 DOM 分离
- reactjs - React - 在 JSX 中使用 for 循环
- swift - 如何在 SwiftUI 中通过用户点击添加折线和注释
- javascript - 出于某种原因,我的 if 语句无论如何都会触发