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