React.js使用道具送值後代組件錯誤React.js:未捕獲的RangeError:最大調用堆棧大小超過
const Child = props => <div onClick={ e => console.log(props.value) }>Click to see value.</div>
const Father = props => <div>{ React.cloneElement(props.children, props) }</div>
const GrandFather = props => <div>{ React.cloneElement(props.children, props) }</div>
ReactDOM.render(
<GrandFather value="This is Test">
<Father>
<Child />
</Father>
</GrandFather>,
document.getElementById('root')
)
我寫以前的演示,測試使用props
發送信息,以後代?零件。但它造成了錯誤:
Uncaught RangeError: Maximum call stack size exceeded at Object.ReactElement.cloneElement
但是我在演示程序運行良好後編寫,所以能否告訴我是什麼原因導致錯誤?
const Child = props => <div onClick={ e => console.log(props.value) }>Click to see value.</div>
const Father = props => <div>{ React.cloneElement(props.children, props) }</div>
ReactDOM.render(
<Father value="This is Test">
<Child />
</Father>,
document.getElementById('root')
)
當組件有一個孩子作爲其中一個道具時,在JSX中也有孩子組件。組件中的'props.children'將會設置你所設置的道具。 「React.js」能否提供一些解決方案來獲得兩者? – TomIsion
關鍵是'.cloneElement'的第三個參數是新元素的'children'。 – TomIsion