开发者问题收集

在 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