我正试图开始编码一个计算器在React的nextjs和顺风,但在第一步我得到了一个问题。
这是主页面代码:
import Screen from './component/Screen'
import Wrapper from './component/wrapper'
import ButtonBox from './component/buttonBox'
import Button from './component/button'
const btnValues=[
["C","+-","%","/"],
[7,8,9,"*"],
[4,5,6,"-"],
[1,2,3,"+"],
[0,".","="],
]
console.log(btnValues);
export default function Home() {
return (
<Wrapper>
<Screen />
<ButtonBox>
{btnValues.flat().map((btn,i)=>{ return (
<Button value={btn} key={i}/>)}
)}
</ButtonBox>
</Wrapper>
)
}
字符串
因为它是一个数组,我试图使用map,但我面临一个错误,这是:
“内部错误:错误代码:对象作为React子对象无效(找到:object with keys {value})。如果您打算呈现子对象的集合,请使用数组。”
这也是ButtonBox的内容:
const buttonBox = ({children}) => {
return (
<div className='mt-16'>
{children}
</div>
)
}
export default buttonBox
型
Wrapper也和ButtonBox一样
我不知道它是什么意思,使用数组时,我已经使用!
2条答案
按热度按时间tquggr8v1#
嘿,我有几个观察,关于你的代码和一个可能的解决方案:
无论如何,我做了一个完整的codesandbox,检查这是否是你需要的,check this link
az31mfrm2#
看起来你试图渲染一个对象,而对象的键是React的子元素。React不允许你直接渲染对象。相反,你应该渲染一个组件数组或单个组件。
根据您的代码,您应该更改
ButtonBox
组件以接受按钮数组,然后呈现数组中的每个按钮。下面是如何做到这一点的示例:字符串
然后,在
Home
组件中,您应该将btnValues
数组传递给ButtonBox
组件:型
这将解决您所面临的错误。