javascript - 如何使操作可重用? ReactJS 与 Redux

标签 javascript reactjs ecmascript-6 react-redux

我需要做一个动态 Action 。换句话说,它可以重复用于不同的操作。

我试图创建一个加载类型和负载的函数,但出现错误。

我正在尝试让这个功能起作用:

        export function getData(url, type) {
            const request = Server.get(url)

            return (dispatch) =>
            request.then((response) => {  
                    dispatch({
                        type: type,
                        payload: response.data
                    })
                }).catch(function (error) {
                    console.log(error)
                });
        }

但是当我这样调用这个函数时出现错误:

        export function getClientes() {
            Actions.getData('ClientesEFornecedores', GET_CLIENTES)    
        }

显示:

        Uncaught Error: Actions must be plain objects. Use custom middleware for async actions.

我是这样调用 getClientes() 函数的:

        function ClientesTable(props)
        {
            const dispatch = useDispatch();
            const clientes = useSelector(({erpCliente}) => erpCliente.clientes.data);

            useEffect(() => {
                dispatch(Actions.getClientes());
            }, [dispatch]);

如何使操作可重用?

最佳答案

尝试这样的事情

export const getData=(url, type) =>async dispatch=>{

        try{
           const response = await Server.get(url);

           dispatch({ type: type,payload: response.data })

        } catch(err){
            console.log(err)
        }
    }

getClientes 函数

export const getClientes=() => dbActions.getData('ClientesEFornecedores', GET_CLIENTES);

关于javascript - 如何使操作可重用? ReactJS 与 Redux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58815383/

相关文章:

javascript - 如何根据 echo 使用 Javascript 重定向 PHP 表单

javascript - 如何在javascript中将数据从旧json复制到新json?

javascript - 比较 Rails 和 JavaScript 中的日期

reactjs - 使用 react-testing-library 在 Jest 中模拟 React 上下文提供程序

javascript - 从现有对象创建新对象,并在 ES6 中将属性设置在数组中

javascript - 更新对象数组中一个对象的一个​​属性值,返回更新后的数组

javascript - Angular2 promise : How to use the response from Http Get

javascript - 分配一个对象来选择值 - ng-options

javascript - 在Javascript中,返回分号 'return;'是什么意思

javascript - 基于其中一个对象组合来自一组对象的数据