我正在嘗試使用可重用的按鈕組件(類組件)呈現一些子元素。按鈕組件接受一些道具,它也有條件地渲染一個鏈接。
下面是代碼:
render() {
const {
className,
link,
children,
style,
onClick,
id,
value,
tabIndex,
name
} = this.props;
if (link) {
return (
<Link className={className} onClick={onClick} to={link}>
{children}
</Link>
);
}
return (
<button
value={value}
style={style}
className={''}
onClick={onClick}
id={id}
tabIndex={tabIndex}
name={name}
>
{children}
</button>
);
}
}
export default Button;
但是 React 不斷回傳一個錯誤說:
```Uncaught Error: Objects are not valid as a React child (found: object with keys {__typename, symbol}). If you meant to render a collection of children, use an array instead.```
按鈕和鏈接組件都呈現它們包含的任何子項。
uj5u.com熱心網友回復:
您正在傳遞一個物件,React 無法渲染它,因為它是一個復雜的物件,基本上它不知道如何處理該物件。您可以傳遞陣列或字串或整數或其他原始型別。
我在這里做了一個例子:https ://codesandbox.io/s/vigilant-sanne-1oqpn4?file=/src/App.js
取消注釋傳遞object給Test組件的行,您會看到類似的錯誤。
uj5u.com熱心網友回復:
您必須以這種方式使用您的組件:(假設名為 Button 類 ...)
<Button>Hello there!</Button>
“你好!” 是兒童道具。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/460658.html
標籤:javascript 反应
上一篇:查找字串并替換為HTML
