React
元素传递
当某个状态定义域及元素判断条件在顶层,但渲染元素在较深子层时,可以不将 setDispatch,条件state 传递,直接在顶层生成 元素,将元素进行传递:
const Root = () => {const [state, setState] = useState();const elm = state === 'xxxx' && (<Jsx setState={setState} />)}React.cloneElement(elm, {props,})
后续有中间层的状态插入,使用 React.cloneElement 即可。
一般的通用组件外定义内部渲染元素也是使用的类似的方式。以及内部插值的同时,保留外部的逻辑。
React.cloneElement(elm, {onChange: (...params) => {if (elm.props.onChange) elm.props.onChange(...params);...},});
