在 react-admin 中创建自定义操作时我看不到链接到我的数据提供者的位置
2018-10-05
5640
我正在按照本教程在 React-admin(以前的 Admin-on-rest)中创建自定义操作: 使用自定义操作创建器 。
但是,在实现它之后,我的代码没有执行任何操作,即没有调用后端。
我猜文档中缺少一种将操作与 dataProvider 链接起来的方法,除非 redux 自动处理它。
对吗?不需要链接到与获取示例中所做的相反的 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) => ({ 类型:UPDATE_PAGE, 有效负载:{ id,数据:{ ...data,is_updated:true } }, 元:{ 获取:UPDATE,资源:'pages' }, });
1个回答
您正在直接在
handleClick
方法中调用操作创建器。您需要使用 props 中的
updatePage
函数来正确分派 redux 操作。
handleClick = () => {
const { record } = this.props;
this.props.updatePage(record.id, record);
}
vahissan
2018-10-06