gpt4 book ai didi

javascript - 如何在 react-scripts v3 中使用 redux-promise-middleware

转载 作者:行者123 更新时间:2023-11-29 15:09:55 24 4
gpt4 key购买 nike

我最近在我的 React 应用程序中将我的 react-scripts 更新到版本 3.0.0 并且我的所有操作都停止工作了。

我正在使用 redux-promise-middleware 所以我在获取数据时总是采用这种模式:

export const FIRST_ACTION = 'FIRST_ACTION';
export const FIRST_ACTION_PENDING = 'FIRST_ACTION_PENDING';
export const FIRST_ACTION_REJECTED = 'FIRST_ACTION_REJECTED';
export const FIRST_ACTION_FULFILLED = 'FIRST_ACTION_FULFILLED';

store.js:

import promiseMiddleware from 'redux-promise-middleware';

export default function configureStore() {
return createStore(
rootReducer,
applyMiddleware(thunk, promiseMiddleware(), logger)
);
}

在我的操作中,我通常会在一个链中执行多个请求:

import { 
firstAction,
secondAction
} from '../service';

const chainedAction = (...) => {
return (dispatch) => {
return dispatch({
type: FIRST_ACTION,
payload: firstAction(...)
}).then(() => dispatch({
type: SECOND_ACTION,
payload: secondAction(...)
}));
};
};

更新后,我收到以下错误:

React Hook "firstAction" cannot be called inside a callback. React Hooks must be called in a React function component or a custom React Hook function  react-hooks/rules-of-hooks

有人知道如何迁移我的操作以便它们符合最新的依赖项吗?

编辑:我正在我的 React 组件中导入此操作并从那里调用它:

import { 
chainedAction
} from '../actions';
...
<Button onClick={(...) => chainedAction(...)}
...
const mapDispatchToProps = dispatch => (
bindActionCreators({
chainedAction
}, dispatch)
);

export default connect(mapStateToProps, mapDispatchToProps)(MyPage);

firstAction(第二个 Action 类似):

export const firstAction = (...) => {
return new Promise((resolve, reject) => {
fetch(API_URL, {
method: 'POST',
body: ...
}).then(response => {
if (response.ok) {
resolve(response.text());
}

reject('...');
}).catch(error => {
return reject(error.message);
});
});
};

最佳答案

我终于找到了错误。我的函数之一称为 useCOnsumable。因为 use 前缀,React 认为它是一个钩子(Hook)并报错。它与 redux-promise-middleware 无关。

一旦我重命名了无效函数,迁移就非常轻松了。

关于javascript - 如何在 react-scripts v3 中使用 redux-promise-middleware,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55879206/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com