redux-form - 影响 admin-on-rest 中 CustomField 的整个记录​​值

标签 redux-form admin-on-rest

我在admin-on-rest中有一个编辑组件的应用程序内部使用 ReduxForm代码如下所示:

<Edit {...props} >
    <CustomField />
    <TextInput source="title" />
</Edit>

我想知道如何从 CustomField 更改 title 而不将其保留在服务器上?

最佳答案

您可以使用自定义传奇并从 redux-form 分派(dispatch) change 事件来实现这样的目的。这样说听起来有点复杂,但事实并非如此。 :)

首先,在您的应用程序中实现自定义传奇:

const customSagas = [
    MyCustomEntitySagas,
];

const App = () => (
    <Admin customSagas={customSagas}>
        // ...
    </Admin>
);

然后,在您的自定义传奇中,只需观看将从 CustomField 发出的操作,例如:

import { change } from 'redux-form';
import { put, takeEvery } from 'redux-saga/effects';

import { CUSTOM_FIELD_CHANGE } from './actions';

export function* watchForCustomFieldChange({ payload }) {
    yield put(change('form-record', 'title', payload.newTitle));
}

export default function* root() {
    yield [
        takeEvery(CUSTOM_FIELD_CHANGE, watchForCustomFieldChange),
    ];
}

例如,以下是您可能想要分派(dispatch)的操作创建者:

export const CUSTOM_FIELD_CHANGE = 'CUSTOM_FIELD_CHANGE';

export const customFieldChange = (newTitle) => ({
    type: CUSTOM_FIELD_CHANGE,
    payload: { newTitle },
});

这里的关键是 Redux Sagas 。看起来像很多样板文件,但它确实简化了 Final 的开发。

我尝试尽可能短以防止太多噪音。但如果您需要更多信息,请随时询问。 :)

关于redux-form - 影响 admin-on-rest 中 CustomField 的整个记录​​值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42861125/

相关文章:

javascript - 尝试重用带有功能组件的 redux-form

reactjs - babel JS文件无法解析 "@babel/runtime/helpers/builtin/classCallCheck"

redux-form - 如何在 React-Bootstrap 中使用 Redux-Form?

javascript - 使用重组实用程序作为元素

javascript - 如何在搜索过滤器的 react 选择中添加自定义图标

reactjs - 如何在react类表单组件中检索当前的redux-form状态字段值?

admin-on-rest - ReferenceManyField 在handleFetch 处未捕获 TypeError : payload. data.map 不是函数

reactjs - React Admin : Can I use another field for <ReferenceInput>, 除了 "id"之外?

react-admin - 如何将 "reset values"按钮添加到react-admin编辑表单

json - React restClient 管理员休息