Javascript 有没有可能在React中没有类的情况下实现类似于HOC的功能?
我想做一些类似的事情:Javascript 有没有可能在React中没有类的情况下实现类似于HOC的功能?,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我想做一些类似的事情: <SomeProvider showConfirm={showConfirm}> {props.showConfirm() ? (<confirmActionComponent />) : (<chooseActionComponent />)} </SomeProvider> {props.showConfirm() ? () : ()} 在chooseActionComponent内部,我希
<SomeProvider showConfirm={showConfirm}>
{props.showConfirm()
? (<confirmActionComponent />)
: (<chooseActionComponent />)}
</SomeProvider>
{props.showConfirm()
? ()
: ()}
在chooseActionComponent
内部,我希望能够访问showConfirm
或深嵌套子组件中的另一个值,以更新父组件中的某些值,并使confirmationComponent
显示
我知道如何使用class
来实现这一点,这往往会在某个时候涉及this
和bind
,我宁愿避免这种情况
有没有办法用纯功能/组件来完成类似的事情?您还希望将此内容保留在Redux商店之外。如果您只想访问
showConfirm
,只需将其传递给孩子:
<SomeProvider showConfirm={showConfirm}>
{props.showConfirm()
? (<confirmActionComponent />)
: (<chooseActionComponent showConfirm={showConfirm} />)}
</SomeProvider>
注意:不建议这样做,我也不建议这样做。
我建议你只需将所需的家长道具传递给孩子即可
<SomeProvider showConfirm={showConfirm}>
{props.showConfirm()
? (<confirmActionComponent />)
: (<chooseActionComponent showConfirm={showConfirm} />)}
</SomeProvider>
您不必使用ES6类来创建内容。如果您希望避免重复使用
bind
以确保方法的正确作用域(使用this.setState
/this.props
),则可以恢复使用React API帮助器函数
您可以专门使用:来创建React类和HOC。再次重申:使用此替代语法将为您自动绑定此
。对,但这正是我试图重构的:)
<SomeProvider showConfirm={showConfirm}>
{props.showConfirm()
? (<confirmActionComponent />)
: (<chooseActionComponent showConfirm={showConfirm} />)}
</SomeProvider>