使用React和Redux在UI中成功处理REST POST操作的常见方法是什么?
What is the common way to handle successful REST POST operation in UI using React and Redux
我有一个Thread组件负责呈现特定线程的消息,还有一个组件负责提交新消息。线程组件的状态由Redux管理,它提供了像FETCH_MESSAGES和POST_MESSAGE这样的异步操作。下面是简化后的伪代码:
class Thread {
messages: [] // This is actually a prop connected to Redux
render = () => {
messages.map(messageComponent)
<SubmitMessageComponent />
}
}
当服务器发送带有id的对象返回时,在UI中处理新消息成功POST操作的常见方法是什么?将该对象推到先前获取的消息数组是否安全,或者我是否应该再次获取所有消息以确保一致性?第一种操作似乎很有效,但不连贯。我正在考虑如何正确地处理来自不同来源的并发REST API操作。重新获取所有内容将始终确保状态的一致性,但在性能方面将是冗余的(想象有几乎无限数量的消息)
是否有事实上的方式来处理创建操作在web应用程序的用户界面?
处理此问题的典型方法是通过"消息"减速器处理POST_MESSAGE
动作来减少状态,如您在问题中所述,即如下所示:
export default function reducer(state = initialState, action = {}) {
switch (action.type) {
[...]
case POST_MESSAGE:
return {
...state,
messages: {
...state.messages,
[action.id]: { ...action.message }
}
}
[...]
}
}
你没有解释如何以及何时获取新消息,但是如果你使用一些websocket,消息将从服务器推送到你的应用程序。
也许另一个解决方案是在POST_MESSAGE
操作中添加时间戳,这样服务器就可以只响应那个时间新添加的消息,但不确定它是否真的是RESTfull。
相关文章:
- API GET或Zapier触发器到POST操作
- 如果我只使用POST,那么我的MVC JSON操作怎么能用GET调用呢
- javascript重定向到带有表单操作post的页面,然后返回到带有输入值的上一页
- JayData.OData v.3操作POST参数接收为空
- 如何从表单外部调用表单的post操作
- X-editable with ASP MVC View,如何将提交的表单POST操作获取到控制器
- 如何使用控制器操作中的post方法将grails模型渲染为javascript
- 在表单操作之前先发一个$.post
- AngularJS$http://.NET Web API-获取400(错误请求)或NULL POST操作方法参数
- 在 $.post() 上执行 JavaScript 操作
- 在Jtable(Jquery)中删除操作时,csrf令牌设置为post参数
- Angular ng包含表单操作Post URL是't工作
- 在Firebug或Chrome中看不到POST操作
- 当使用AJAX发送到PHP时,是否有任何方法可以再次保护post操作?
- JQuery-Select2 -操作发送的http-post数据以发送文本而不是id
- AJAX jquery post数据对于浏览器/客户端操作是否安全?
- post()执行GET操作
- Jquery使用ajax post来操作html模板
- 使用外部POST操作验证Django表单
- Javascript;多文件上传字段-操作POST(文件输入)