【React】不再支持将对象作为React子组件。请处理该错误的方法

环境

    • React version18

 

    CodeSandBbox

错误内容

在尝试React官方教程时,出现了以下错误。

错误
对象无法作为 React 的子级(找到的是具有键 {value,onSquareClick} 的对象)。如果您打算呈现一个子级集合,请使用数组代替。

机器翻译的结果如下所示。

请使用数组来渲染子组件集合,因为该对象(包含键值 {value, onSquareClick})不能作为 React 的子组件有效。

假设

首先,我查找了被错误指出的{value, onSquareClick}所写的位置。
然后,我发现虽然没有{},但是将value和onSquareClick作为子组件的props传递了。

<Square value={squares[0]} onSquareClick={handleClick} />
export default function Square(value, onSquareClick) {
  return (
    <button className="square" onClick={onSquareClick}>
      {value}
    </button>
  );
}

从错误信息 “React 的子组件无效” 中推测出传递给子组件的 props 的方式可能有误。

进行解决

試試看加上{}作為{value, onSquareClick},結果發現錯誤已解決。

export default function Square({value, onSquareClick}) {
  return (
    <button className="square" onClick={onSquareClick}>
      {value}
    </button>
  );
}

我突然想起来了,当传递多个props时,必须将其作为对象传递,或者一定要用{}括起来并进行解构赋值。

可能是由于没有用大括号包围value,而将其作为onSquareClick参数,导致出现错误。或者有人指出,如果想传递多个参数,可以尝试使用数组将它们合并为一个参数。

最后

由于我才开始学习React不到3天,所以我对错误信息进行了相当推测和解释。
如果有错误,请务必告诉我!非常感谢。

请提供参考资料。
请提供相关参考资料。
请提供可以参考的资料。
请提供可以参考的文献。

    • 公式:コンポーネントに props を渡す

 

    モダンJavaScriptの基礎から始める挫折しないためのReact入門
广告
将在 10 秒后关闭
bannerAds