1

我有一个使用 redux 实现的反应应用程序。在使用 redux 之前,我能够成功地将其发布为 npm 包库,并将其用作另一个 react 应用程序中的第三方组件。然后我使用 redux 来实现并在更改版本后通过简单地运行“npm publish”再次发布它。我能够成功发布它。但是当我在另一个没有使用 redux 的 react 应用程序中将它用作第三方组件时,它给了我一个错误。

有没有办法发布一个使用 react-redux 的包,用作不使用 redux 的 react 应用程序中的第三方组件?

Error: could not find react-redux context value; please ensure the component is wrapped in a <Provider>
▶ 21 stack frames were collapsed.
Module.<anonymous>
D:/test/my-app/src/index.js:7
   4 | import App from './App';
   5 | import reportWebVitals from './reportWebVitals';
   6 | 
>  7 | ReactDOM.render(
   8 |   <React.StrictMode>
   9 |     <App />
  10 |   </React.StrictMode>,
4

1 回答 1

1

您可以使用自定义上下文来防止包的 redux 存储与可能已经存在的 redux 存储发生冲突。在这种情况下,您将导出您自己的Provider组件,该组件创建并传递了一个 redux 存储,并且您的包的使用者需要将该 Provider 包装在他们的应用程序周围。

于 2021-01-15T12:15:53.280 回答