React-Redux-处理网络数据
在看怎么获取之前首先博主这里使用了 Egg 搭建了一个后台,下载,然后将 Egg 项目启动起来不介绍如何启动不会的自行去学习 Egg,然后启动了之后就可以进行下一步操作了,然后更改我们的前端 React 代码进行发送网络请求拿到数据这里采用 fetch 进行请求。
- 更改 About.js 如下
import React from 'react';
class About extends React.PureComponent {
componentDidMount() {
fetch('http://localhost:7001/info')
.then(resp => {
return resp.json();
})
.then(data => {
console.log(data);
})
.catch(error => {
console.log(error);
});
}
render() {
return (
<div>
</div>
)
}
}
export default About;
从如上图中发现数据已经拿到了,然后呐,就开始更改我们的 reducer.js 定义一个状态
// 定义一个状态
let initialState = {
count: 666,
info: {}
};
- 更改 constants.js 添加一个常量
export const CHANGE_INFO = 'CHANGE_INFO';
- 更改 action.js 添加一个 action
import {
...
CHANGE_INFO
} from './constants';
...
export const changeAction = (info) => {
return {type: CHANGE_INFO, info: info};
};
- 在 reducer 当中处理任务
import {
...
CHANGE_INFO
} from './constants';
...
// 利用reducer将store和action串联起来
function reducer(state = initialState, action) {
switch (action.type) {
case ADD_COUNT:
return {...state, count: state.count + action.num};
case SUB_COUNT:
return {...state, count: state.count - action.num};
case CHANGE_INFO:
return {...state, info: action.info};
default:
return state;
}
}
export default reducer;
- 然后在 About.js 当中在获取到网络数据的时候调用派发的方法传递一个数据,然后对应的 action 会保存到对应的状态当中,这样就实现了将网络的数据保存在 Redux 当中了
import React from 'react';
import {changeAction} from "../store/action";
import connect from "../connect/connect";
class About extends React.PureComponent {
componentDidMount() {
fetch('http://localhost:7001/info')
.then(resp => {
return resp.json();
})
.then(data => {
this.props.changeInfo(data);
})
.catch(error => {
console.log(error);
});
}
render() {
return (
<div>
<p>{this.props.info.name}</p>
<p>{this.props.info.age}</p>
</div>
)
}
}
const mapStateToProps = (state) => {
return {
info: state.info
}
};
const mapDispatchToProps = (dispatch) => {
return {
changeInfo(info) {
dispatch(changeAction(info));
}
}
};
export default connect(mapStateToProps, mapDispatchToProps)(About);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具