redux-thunk的作用:
redux-thunk
中间件可以处理函数形式的 action
。因此,在函数形式的 action 中就可以执行异步操作代码,完成异步操作。
步骤:
1、安装: npm i redux-thunk
2.使用:在store/index.js中
导入 redux-thunk , applyMiddleware
import { createStore, applyMiddleware } from 'redux'
import thunk from 'redux-thunk'
3.调用applyMiddleware将 thunk 添加到中间件列表中
const store = createStore(rootReducer, applyMiddleware(thunk))
4.在store文件里创建一个actions文件,里面创建一个newsList.js文件用来发送ajax请求
import axios from 'axios' //导入axios
import { NEWLIST_GET } from '../actionTypes'
export const getNewsList = (id) => {
const fn = async (dispatch) => {
const res = await axios.get(
'http:xxxxxxxxxxxxx'
)
console.log('新闻列表', res)
dispatch({ type: NEWLIST_GET, payload: res.data.data.results })
}
return fn
}
在reducers/newsList.js中写如下代码:
import { NEWLIST_GET } from '../actionTypes'
const initState = [] // 所有的新闻列表
export default function newsList (state = initState, action) {
console.log(action)
switch (action.type) {
case NEWLIST_GET:
return action.payload
default:
return state
}
}
5.ajax发送请求之后,如何渲染数据到页面呢?往下看:
在想要渲染的组件内导入 (import { getNewsList } from '../store/actions/newsList'),然后用map方法进行循环渲染往下铺设数据
还有一点就是,开发react项目时,通过chrome开发者工具调试跟踪redux状态,先要安装 redux的开发者工具
,再安装redux调试工具 ,网上有很多安装教程,这个开发者工具可以去极简插件下载,很简单就装好了。
希望以上对你有帮助~