在 react-admin 中创建自定义操作我看不到 link 到我的数据提供者的位置
Creating a custom action in react-admin I cannot see where to link to my dataprovider
我正在按照本教程在 React-admin(以前的 Admin-on-rest)中创建自定义操作:using a custom action creator。
然而,在实现它之后,我的代码没有做任何事情,即没有调用后端。
我猜文档中缺少 link dataProvider 操作的方法,除非 redux 自动处理它。
对吗?不需要 link dataProvider 与获取示例中的相反?
以下我的代码片段:
UpdatePage 与教程中的 ApproveButton 非常相似:
// Update Page.js
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { updatePage } from '../../actions/pages';
import Button from '@material-ui/core/Button';
class UpdatePage extends Component {
handleClick = () => {
const { record } = this.props;
updatePage(record.id, record);
}
render() {
return <Button disabled={this.props.disabled} onClick={this.handleClick}>Confirmar</Button>;
}
}
UpdatePage.propTypes = {
disabled: PropTypes.bool.isRequired,
updatePage: PropTypes.func.isRequired,
record: PropTypes.object,
};
export default connect(null, {
updatePage
})(UpdatePage);`
UpdatePage 的操作(如教程的 commentActions 中所示):
//in ../../actions/pages.js
import { UPDATE } from 'react-admin';
export const UPDATE_PAGE = 'UPDATE_PAGE';
export const updatePage = (id, data) => ({
type: UPDATE_PAGE,
payload: { id, data: { ...data, is_updated: true } },
meta: { fetch: UPDATE, resource: 'pages' },
});
您正在 handleClick
方法中直接调用动作创建器。您需要使用 props 中的 updatePage
函数来正确调度 redux 操作。
handleClick = () => {
const { record } = this.props;
this.props.updatePage(record.id, record);
}
我正在按照本教程在 React-admin(以前的 Admin-on-rest)中创建自定义操作:using a custom action creator。
然而,在实现它之后,我的代码没有做任何事情,即没有调用后端。
我猜文档中缺少 link dataProvider 操作的方法,除非 redux 自动处理它。
对吗?不需要 link dataProvider 与获取示例中的相反?
以下我的代码片段:
UpdatePage 与教程中的 ApproveButton 非常相似:
// Update Page.js import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { connect } from 'react-redux'; import { updatePage } from '../../actions/pages'; import Button from '@material-ui/core/Button'; class UpdatePage extends Component { handleClick = () => { const { record } = this.props; updatePage(record.id, record); } render() { return <Button disabled={this.props.disabled} onClick={this.handleClick}>Confirmar</Button>; } } UpdatePage.propTypes = { disabled: PropTypes.bool.isRequired, updatePage: PropTypes.func.isRequired, record: PropTypes.object, }; export default connect(null, { updatePage })(UpdatePage);`
UpdatePage 的操作(如教程的 commentActions 中所示):
//in ../../actions/pages.js import { UPDATE } from 'react-admin'; export const UPDATE_PAGE = 'UPDATE_PAGE'; export const updatePage = (id, data) => ({ type: UPDATE_PAGE, payload: { id, data: { ...data, is_updated: true } }, meta: { fetch: UPDATE, resource: 'pages' }, });
您正在 handleClick
方法中直接调用动作创建器。您需要使用 props 中的 updatePage
函数来正确调度 redux 操作。
handleClick = () => {
const { record } = this.props;
this.props.updatePage(record.id, record);
}