我正在尝试使Redux Form首次工作,但出现以下错误:
具有Ref的不变违规已删除。访问包装好的 例如,在连接的组件上使用ref。
我在做什么错?我一写完商店(从示例中复制/粘贴),就会抛出该错误。
这是代码。
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);
我还制作了一个显示此问题的代码沙箱:https://codesandbox.io/s/07xzolv60
答案 0 :(得分:16)
我有同样的问题。 显然, redux形式不适用于 react-redux 版本大于6的版本。
对我来说,将 react-redux 软件包降级到版本5的帮助是什么
npm install react-redux@5.1.1 --save
答案 1 :(得分:9)
只需更新到最新版本的redux-form(8.1.0)。无需降级。
答案 2 :(得分:4)
虽然上述方法确实有效,但是如果您想使用最新的方法,则您所要做的就是将函数组件重构为类组件。寻找withRef()
API。 (请将此作为正确答案,以帮助其他开发人员。)
https://redux-form.com/7.1.2/docs/api/fieldarray.md/#props-you-can-pass-to-code-fieldarray-code-
答案 3 :(得分:1)
我不建议降级var form_data = JSON.stringify($('form').serializeArray())
jQuery.ajax({
type: "POST",
url: "/processing/test.php",
data: form_data,
contentType: "application/json; charset=utf-8",
dataType: "json",
});
,而是说您将两个库都更新为它们的最新版本,问题应该得到解决。请参阅Redux Form文档,了解从v6迁移到v8的情况。
答案 4 :(得分:0)
https://github.com/reduxjs/react-redux/releases/tag/v6.0.0
用于连接的withRef选项已替换为forwardRef
svn add --force path_to_jenkins_home
svn commit path_to_jenkins_home -m "message"