请帮我。我不知道为什么这段代码不起作用。
它给我一个错误:“对象作为React子对象无效(找到:带有键{itemss}的对象)。如果要渲染子对象的集合,请改用数组。”
为什么{i.title}是对象。这只是一个字符串。我怎样才能解决这个问题?以及实际上如何迭代嵌套对象?
class ShopItem extends React.Component {
render() {
var items = [
{
link: 'first link',
title: 'Emery NEM XF',
price: '$950'
},
{
link: 'second link',
title: 'Emery NEM XF',
price: '$950'
},
{
link: 'third link',
title: 'Emery NEM XF',
price: '$950'
}
];
const item = items.map((i) =>{
return ( <h1>{i.title}</h1> )
});
return (
{items}
)
}
}
ReactDOM.render(<ShopItem /> , document.querySelector('#root'));
问题是因为你回来了
return (
{items}
)
这是的等效return ({items: items})
即 您将返回具有键items
和的对象React doesn't expect objects for rendering
。你可以写
const items = items.map((i) =>{
return ( <h1>{i.title}</h1> )
});
return items;
要么
return items.map((i) =>{
return ( <h1>{i.title}</h1> )
});
要么
const items = items.map((i) =>{
return ( <h1>{i.title}</h1> )
});
return <React.Fragment>
{items}
</React.Fragment>
PS请注意,前两种方法将开始起作用,
react v16.0.0 onwards
而后一种方法将v16.2
开始起作用。
但是,如果您使用的是较低版本,则需要将return元素包装在类似
return (
<div>{items}</div>
)
问题内容: 我正在尝试使用用户代理将json设置为一种状态,但出现错误: 未捕获的不变违规:对象作为React子对象无效(找到:具有键{…}的对象)。如果您打算渲染孩子的集合,请使用数组代替,或者使用React附加组件中的createFragment(object)包装对象。 设置状态的方法: 服务 杰森 问题答案: 您无法执行此操作:由于您的错误提示您尝试执行的操作无效。您正在尝试将整个数组呈现
问题内容: 我正在尝试通过数组映射来呈现帖子列表。我已经做过很多次了,但有一些 我得到的是: 未捕获的错误:对象作为React子对象无效(找到:[object Promise])。如果要渲染子级集合,请改用数组。 我检查了renderPosts返回的数据,它是一个具有正确值且没有承诺的数组。这里发生了什么? 问题答案: 将返回非实际数据,并且AFAIK Reactjs将不会在中隐式解析Promis
我试图实现一个简单的功能,的一个按钮,它应该添加放置数组并显示在视图中,但我似乎得到了一个错误,请帮助 这是我的代码, 这是我得到的错误, 我是个新来的土生土长的人,所以我对此一无所知。
在组件的呈现函数中,我有: 所有内容都显示良好,但单击 元素时,我会收到以下错误: 未捕获得错误:不变冲突:对象作为React子级无效(找到:具有键得对象{dispatchConfig,dispatchMarker,nativeEvent,target,currentTarget,type,eventPhase,bubbles,cancelable,timeStamp,defaultPrevent
问题内容: 我是React Native的新手,并且在下面引用了一个错误: 对象作为React子对象无效(找到:带有键{$$ typeof,type,key,ref,props,_owner,_store}的对象)。如果要渲染子级集合,请改用数组。 这是我的整个代码,除了样式外,还包含在组件文件中: 我很困惑如何解决该问题。提前致谢。 问题答案: 试试这个: 从App.js中删除firebase导