我的项目使用的是next-redux-wrapper(2.0.0)和next-redux-saga(3.0.0),我更喜欢在服务器端通过redux-saga调用API,但是该API被多次调用。我将调用API进行一些日志记录并处理一些数据,多次调用API会使数据出错。
这是我的代码,有什么解决方法吗?
// index.js
Index.getInitialProps = async ({ ctx: { isServer, store } }) => {
if (isServer) store.dispatch(appOnServer())
}
// saga.js
import axios from 'axios'
import { take, call } from 'redux-saga/effects'
import { actionToListen, actionToActivate } from './actions'
function * callApi {
try {
const data = call(axios.get, 'https://some_api_url')
yield put(actionToActivate(data.data))
} catch (err) { console.log(err) }
}
function * rootSaga() {
try {
yield take(actionToListen())
} catch (err) { console.log(err) }
}
export default rootSaga