使用POST响应更新Redux store的步骤如下:
下面是一个示例代码:
// actions.js
import axios from 'axios';
export const updateData = (data) => {
return {
type: 'UPDATE_DATA',
payload: data
};
};
export const postData = (data) => {
return (dispatch) => {
axios.post('/api/data', data)
.then((response) => {
dispatch(updateData(response.data));
})
.catch((error) => {
console.error(error);
});
};
};
// reducer.js
const initialState = {
data: null
};
const reducer = (state = initialState, action) => {
switch (action.type) {
case 'UPDATE_DATA':
return {
...state,
data: action.payload
};
default:
return state;
}
};
export default reducer;
// component.js
import React from 'react';
import { connect } from 'react-redux';
import { postData } from './actions';
class MyComponent extends React.Component {
handleSubmit = (event) => {
event.preventDefault();
const data = {
// 构造POST请求的数据
};
this.props.postData(data);
};
render() {
return (
<form onSubmit={this.handleSubmit}>
{/* 表单内容 */}
<button type="submit">提交</button>
</form>
);
}
}
const mapStateToProps = (state) => {
return {
data: state.data
};
};
const mapDispatchToProps = {
postData
};
export default connect(mapStateToProps, mapDispatchToProps)(MyComponent);
在上面的示例中,我们定义了一个名为postData
的action,它发送POST请求并在请求成功后调用updateData
来更新store中的数据。在reducer中,我们根据action的type来更新store中的状态。在组件中,我们使用connect
函数将store连接到组件,并通过mapStateToProps
函数将store中的状态映射到组件的props中。通过调用dispatch
函数来触发action,从而更新store中的状态。
请注意,上述示例中的代码仅为演示目的,实际情况中可能需要根据具体需求进行修改和调整。
推荐的腾讯云相关产品:腾讯云云服务器(CVM)、腾讯云对象存储(COS)、腾讯云云函数(SCF)等。你可以在腾讯云官网上找到这些产品的详细介绍和文档。
参考链接:
领取专属 10元无门槛券
手把手带您无忧上云