- 89
- 0
情景:
现在有个弹框,当前页面有个按钮,点击按钮显示弹框。
弹框内有输入表单,输入后点提交按钮请求接口,如果接口请求正确关闭弹框,如果报错,toast提示不关闭当前弹框。
现在是页面中state中定义个字段isShow来控制弹框隐藏或显示。
this.state={
isShow:false
}
用到的是redux-saga,在点击的按钮的请求接口
this.props.menuCreate({id:123})
对于如果是错误状态的话,需要在reducer里定义一个错误的状态,根据请求状态来修改这个error状态
let initState={
error:false
}
然后在页面中使用componentWillReceiveProps来判断props的error的状态,然后再修改isShow来控制弹框。
感觉有点繁琐。
还是说把弹框的隐藏显示的控制也放到redux的store中,都通过props来控制弹框状态,这样更合理呢。
- 共 0 条
- 全部回答
-
事与愿违故不知爱 普通会员 1楼
Redux 是一个状态管理库,它的核心思想是通过函数式编程来管理应用程序的状态。Redux 提供了一套强大的中间件,可以帮助你优雅地实现异步请求,同时也能让你轻松地管理你正在处理的状态和状态之间的关系。
以下是一些合理控制 Redux 异步请求和状态的方法:
- 使用 Redux 的
async/await操作符:Redux 提供了async/await操作符,这使得异步操作在异步操作之间建立联系,使得你的代码更加清晰和易于理解。
```javascript import { createStore } from 'redux'; import { fetch } from 'redux-async-api';
const store = createStore( fetch('https://example.com/api/data') ); ```
- 使用 Redux 的
mapState方法:mapState方法可以帮助你将一个函数应用于所有状态。你可以根据需要编写不同的函数,来处理不同类型的 state。
```javascript store.mapState((state, key) => ({ ...state,
})); ```
- 使用 Redux 的
connect函数:connect函数可以帮助你将一个函数应用到一个状态上。你可以根据需要编写不同的函数,来处理不同类型的 state。
javascript const MyComponent = connect( (state, ownProps) => ({ data: state.myData, fetchData: async () => fetch('https://example.com/api/data') }) )(MyComponent);- 使用 Redux 的
AsyncProvider组件:AsyncProvider组件可以将一个状态提供给所有的组件。你可以根据需要编写不同的组件,来处理不同类型的 state。
```javascript import { AsyncProvider } from 'redux-async-api';
const MyProvider = ({ children }) => { return (
{children} ); }; ```以上就是合理控制 Redux 异步请求和状态的一些方法。希望对你有所帮助。
- 使用 Redux 的
-
手①揮,那嘟卟媞亊 普通会员 2楼
Redux 是一个状态管理库,它的核心思想是通过函数式编程来管理应用程序的状态。Redux 提供了一套强大的中间件,可以帮助你优雅地实现异步请求,同时也能让你轻松地管理你正在处理的状态和状态之间的关系。
以下是一些合理控制 Redux 异步请求和状态的方法:
- 使用 Redux 的
async/await操作符:Redux 提供了async/await操作符,这使得异步操作在异步操作之间建立联系,使得你的代码更加清晰和易于理解。
```javascript import { createStore } from 'redux'; import { fetch } from 'redux-async-api';
const store = createStore( fetch('https://example.com/api/data') ); ```
- 使用 Redux 的
mapState方法:mapState方法可以帮助你将一个函数应用于所有状态。你可以根据需要编写不同的函数,来处理不同类型的 state。
```javascript store.mapState((state, key) => ({ ...state,
})); ```
- 使用 Redux 的
connect函数:connect函数可以帮助你将一个函数应用到一个状态上。你可以根据需要编写不同的函数,来处理不同类型的 state。
javascript const MyComponent = connect( (state, ownProps) => ({ data: state.myData, fetchData: async () => fetch('https://example.com/api/data') }) )(MyComponent);- 使用 Redux 的
AsyncProvider组件:AsyncProvider组件可以将一个状态提供给所有的组件。你可以根据需要编写不同的组件,来处理不同类型的 state。
```javascript import { AsyncProvider } from 'redux-async-api';
const MyProvider = ({ children }) => { return (
{children} ); }; ```以上就是合理控制 Redux 异步请求和状态的一些方法。希望对你有所帮助。
- 使用 Redux 的
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

