web-dev-qa-db-fra.com

L'erreur withRef est supprimée. Pour accéder à l'instance encapsulée, utilisez une référence sur le composant connecté lorsque vous utilisez Redux Form.

J'essaie de faire fonctionner Redux Form pour la première fois et j'obtiens le message d'erreur suivant:

La violation invariante avecRef est supprimée. Pour accéder à l'emballage Par exemple, utilisez une référence sur le composant connecté.

Qu'est-ce que je fais mal? L'erreur est renvoyée dès que j'écris (copier/coller à partir de l'exemple) le magasin.

Voici le code.

import React from "react";
import ReactDOM from "react-dom";
import { createStore, combineReducers } from 'redux'
import { reducer as formReducer } from 'redux-form'

const rootReducer = combineReducers({
  form: formReducer
})

const store = createStore(rootReducer);


function App() {
  return (
    <div className="App">
      <h1>Hello CodeSandbox</h1>
      <h2>Start editing to see some magic happen!</h2>
    </div>
  );
}

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);

J'ai également créé un sandbox de code qui montre le problème: https://codesandbox.io/s/07xzolv60

8
Mimo

J'ai eu le même problème. Apparemment, redux-form ne fonctionne pas encore bien avec react-redux version plus grande que 6.

Pour moi, ce qui a aidé, c'est la mise à niveau du paquet react-redux vers la version 5.

npm install [email protected] --save
11
Yariv Katz

Bien que ce qui précède fonctionne, si vous souhaitez utiliser la dernière version, il vous suffit de refactoriser votre composant fonction en un composant de classe. Recherchez l'API withRef()

https://redux-form.com/7.1.2/docs/api/fieldarray.md/#props-you-can-pass-to-code-fieldarray-code-

3
Clayton Ray

Il suffit de mettre à jour la dernière version de redux-form (8.1.0). Il n'y a pas besoin de déclasser.

2
Bamtak