Reactjs 我可以在react组件中链接redux promsie操作吗?
我有一个从服务器获取数据的redux操作,我的操作如下Reactjs 我可以在react组件中链接redux promsie操作吗?,reactjs,redux,react-redux,Reactjs,Redux,React Redux,我有一个从服务器获取数据的redux操作,我的操作如下 export const getFakeData = () => (dispatch) => { return dispatch({ type: 'GET_FAKE_DATA', payload: { promise: axios.get('/test'), } }); }; const reducer = (INITIAL_STATE, { [GET_FAKE_DATA]: {
export const getFakeData = () => (dispatch) => {
return dispatch({
type: 'GET_FAKE_DATA',
payload: {
promise: axios.get('/test'),
}
});
};
const reducer = (INITIAL_STATE, {
[GET_FAKE_DATA]: {
PENDING: () => ({
isLoading: true,
}),
FULFILLED: (state, action) => {
const { data } = action.payload.data;
return {
...state,
data,
error: false,
isLoading: false,
};
},
REJECTED: () => ({
isLoading: false,
error: true
}),
});
我的减速机是这样的
export const getFakeData = () => (dispatch) => {
return dispatch({
type: 'GET_FAKE_DATA',
payload: {
promise: axios.get('/test'),
}
});
};
const reducer = (INITIAL_STATE, {
[GET_FAKE_DATA]: {
PENDING: () => ({
isLoading: true,
}),
FULFILLED: (state, action) => {
const { data } = action.payload.data;
return {
...state,
data,
error: false,
isLoading: false,
};
},
REJECTED: () => ({
isLoading: false,
error: true
}),
});
我想在我的操作发送后显示成功警报,下面的代码是否违反了关于单向流的redux原则
this.props.getFakeData().then(() => {
this.setState({
showAlert: true
});
});
根据您的用例,将
showAlert
标记保留在组件的本地状态,而不是Redux存储,这是非常好的
以下是它的含义:
使用局部组件状态是可以的。作为开发人员,您的工作是
确定构成应用程序的状态类型,以及每个状态的位置
一个国家应该活下去。找到一个适合你的平衡点,然后走
用它
确定数据类型的一些常用经验法则
放入Redux:
- 应用程序的其他部分是否关心此数据
- 您是否需要能够基于此原始数据创建进一步的派生数据
- 是否使用相同的数据驱动多个组件
- 能够将此状态恢复到给定的时间点(即,时间旅行调试)对您有价值吗
- 是否要缓存数据(即,如果数据已经存在,则使用状态中的数据,而不是重新请求)
非常感谢,但这种模式打破了单向流规则,因为我也将我的组件连接到redux商店,你认为它对吗?是的,很好。请再次检查上述常见经验法则。它们涵盖了大多数案例。另外,请阅读我提到的链接: