为什么它一直说用户未定义?
2019-09-18
621
我正在编写一个函数,该函数调用一个 prop,该 prop 调用数组中的对象,但它一直抛出此错误:
TypeError: undefined is not a function (near '...robots.map...')
我假设它谈论的是用户,但我不知道。任何帮助都将不胜感激,这是我的代码
此文件 CardList.js 上抛出了错误
import React from 'react';
import Card from './Card';
const CardList = ({ robots }) =>{
//the line under this is the one throwing the error
const cardComponent = robots.map((user, i)=>{
return <Card id={robots[i].id} name={robots[i].name} email= {robots[i].email} />
});
return(
<div>
{cardComponent}
</div>
);
}
export default CardList;
这是 robots.js 文件,我仅将几个对象放入数组中,以便您了解。
export const robots = [
{
id: 1,
name: 'Leanne Graham',
username: 'Bret',
email: '[email protected]'
},
{
id: 2,
name: 'Ervin Howell',
username: 'Antonette',
email: '[email protected]'
},
{
id: 3,
name: 'Clementine Bauch',
username: 'Samantha',
email: '[email protected]'
}
];
这是 index.js 文件
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import CardList from './CardList';
import { robots } from './robots';
import 'tachyons';
import * as serviceWorker from './serviceWorker';
ReactDOM.render(<CardList robots={'robots'}/>, document.getElementById('root'));
serviceWorker.unregister();
2个回答
这里有一个拼写错误:
ReactDOM.render(<CardList robots={'robots'}/>, document.getElementById('root'));
应该是:
ReactDOM.render(<CardList robots={robots}/>,document.getElementById('root'));
其中
robots
是您要导入的变量的名称,而不是字符串。
Gaël S
2019-09-18
您传递的是一个字符串(
'robots'
),而不是从
'./robots'
导入的数组(
robots
)。
因此,
map
函数存在于 Array 的原型上,但不存在于 String 的原型上,这就是它抛出错误的原因。
要解决此问题,
<CardList robots={'robots'}/>
应替换为
<CardList robots={robots}/>
Raj Kumar Boddu
2019-09-18