React组件中的替代方法-一种反模式,但是我该怎么做?

时间:2019-06-17 19:00:49

标签: javascript reactjs inheritance extending-classes

当我说如果我还有其他选择的时候,请相信我,我会接受的,但是我处于机智。

我正在一家大公司工作,该公司已经有一个专门用于授权的图书馆。在大多数情况下,授权都是有效的,但 却是这样,它的工作方式是将您的应用置于渲染功能中的“授权组件”之间。 您不能更改授权组件的代码。

还应该使用该库自己的Redux存储,并且可以在该库中添加reducer,但不能添加中间件。您无法触摸此代码。

   <Provider store={importedStore}>
     <AuthorisedComponent
        organisationId={orgId}
        journeyConfig={journeyConfig}
        allowUnauthorised={true}
        data-selector="journey"
      >
        <YourApp/>
      </AuthorisedComponent>
   </Provider>

在这里事情变得棘手-有点...非常规。到目前为止,AuthorizedComponent 正在进行API调用以获取JWT令牌,但效果很好,但它不是将jwt令牌存储在内存,会话存储或本地存储中的任何位置。 >而是将其存储在无法公开访问的内部状态中。但是,我可以看一下源代码。

需要 JWT令牌进行API调用以构建此新功能。

我想做的是:

const ExtendedAuthorizedComponent = React.cloneElement(<AuthorizedComponent/>)
ExtendedAuthorizedComponent.prototype.handleLogin = new function.  

我知道这是一种反模式。我知道您不应该这样做。但是我没时间了,只有两个错误才是正确的选择。

0 个答案:

没有答案