不变违规:对象作为无效的 React Children
当尝试将对象渲染为以下内容时,React 中可能会发生不变违规错误:一个直接的 React 子进程。在给定的组件中,当 onClick 处理程序传递一个对象(事件对象)作为参数时,就会出现错误。
React 期望子元素是原始值(例如字符串、数字)、React元素,或这些值的数组。对象、对象数组或其他复杂结构不会被识别为有效的子结构。
要解决此错误,应将事件处理程序 this.onItemClick.bind(this, item) 包装在箭头函数中以防止事件对象作为参数传递。正确的实现是:
{items.map((item) => ( <li key={item} onClick={(e) => this.onItemClick(e, item)}>{item}</li> ))}
此错误的另一个原因可能是对象无意中呈现为字符串。例如:
breadcrumbElement = { ...someObject ... }; {breadcrumbElement} // Renders as an object, not a string
确保所有子元素都是这些值的字符串、元素或数组。如果需要表示一个对象,请将其转换为字符串或将其包装在 React.Fragment 中以避免此错误。
以上是为什么我收到“不变违规:对象作为无效的 React 子对象”?的详细内容。更多信息请关注PHP中文网其他相关文章!