gpt4 book ai didi

javascript - React.js - 将 Prop 从 hoc 传递给 child

转载 作者:行者123 更新时间:2023-11-30 09:14:13 53 4
gpt4 key购买 nike

我一直在尝试将我的 HOC 中的一些 Prop 传递给 children 。 HOC 包装了 React 路由器开关和路由。子组件中缺少 Prop 。我利用 React.CloneElement 为 child 添加 Prop ,但似乎不起作用

<BrowserRouter>
<Layout>
<React.Suspense fallback={loading()}>
<Switch>
<Route exact path="/" component={Login} />
<Route path="/dashboard" component={Home} />
<Route path="/tickets" component={Tickets} />

</Switch>
</React.Suspense>
</Layout>
</BrowserRouter>

this is the HOC(layout)

class Layout extends React.Component {
.....

render() {
const children = this.props.children && React.cloneElement(this.props.children, { data: 'ok' })
...

子组件没有得到 data 属性,我只得到这个

{history: {…}, location: {…}, match: {…}, staticContext: undefined}

最佳答案

data prop 注入(inject)基础组件的工作 HOC 示例。

/* HOC */
const withData = Base => () => <Base data="ok" />

/* Component */
class Router extends React.Component {
render() {
return this.props.data;
}
}

const RouterWithData = withData(Router); // export default withData(Router);

ReactDOM.render(<RouterWithData />, document.getElementById('root'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="root"></div>

关于javascript - React.js - 将 Prop 从 hoc 传递给 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56392374/

53 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com