Estoy tratando de actualizar de react-redux ( https://www.npmjs.com/package/react-redux ) a 7.x desde 5.x, para usar ganchos y he alcanzado algunos cambios importantes con connect() función. Sigue dándome el error de que debo empaquetar mi aplicación en un proveedor, que ya tengo.
Error:
Uncaught (in promise) Invariant Violation: Could not find "store" in either the context or props of "Connect(DateRangeSelector)". Either wrap the root component in a <Provider>, or explicitly pass "store" as a prop to "Connect(DateRangeSelector)".Código de proveedor:
import React from 'react'; import { Provider } from 'react-redux'; import store from 'scripts/setup'; import FullReactComponent from 'root/FullReactComponent'; const App = () => ( <Provider store={store}> <FullReactComponent /> </Provider> ); export default App;Código de conexión:
FullReactRootComponent.propTypes = { bgColor: PropTypes.string.isRequired, }; export const mapStateToProps = ({ portal }) => ({ bgColor: portal.get('bgColor'), }); export const mapDispatchToProps = { fetchEnabledRoutes: actions.fetchEnabledRoutes, }; export default connect( mapStateToProps, mapDispatchToProps, )(FullReactRootComponent);¿Alguien se ha encontrado con este problema al actualizar también? ¿Hay algún cambio en la API de conexión?
Editar: aquí hay un ejemplo de cómo Connect no se llama correctamente entre dos instantáneas:
5.x:
<Connect(ModalComponent) open={true}> <ModalAdd /> </Connect(ModalComponent)>7.x:
<ModalComponent open={true} />De @markerikson, resultó que tenía copias duplicadas de react-redux en mi yarn.lock. Para solucionarlo, puse react-redux en resolutions en package.json y lo obligué a ser 7.x para cualquier biblioteca compartida.