场景 - 数据库中某些表的数据更改,例如使用从另一个进程上传的文件,例如不属于react-redux应用程序的ETL工具。那么我们如何刷新react-redux应用程序组件呢? Web 套接字是唯一将这种更改从服务器推送到客户端的方法吗?或者我们是否定期刷新受影响的组件?但是所有这些端口都必须一直保持打开状态吗?后端是一个java/oracle应用程序。
谢谢
你应该进行 Ajax 调用(我喜欢使用axios https://github.com/axios/axios) 每次加载相关 React 组件时都会写入数据库,以确保数据是最新的。如果您使用以下命令创建组件React.createClass
, use getInitialState()
在所述组件内。
编辑:由于您不希望组件每次加载时都查询数据库,而是仅在指定的时间段之后查询,因此我建议对以下代码进行变体:
getInitialState() {
//Define a variable and set as the current date object
let date = new Date;
//Convert the variable's value to a string
date = date.toString();
//Slice the day of the month from the date string
let day = date.slice(6,8);
//Query the database if it's the 15th or 28th (approximately every 2
//weeks, accounting for February
if (day == ("15" || "28")) {
//Ajax call here
return {data: ajaxResponse};
}
}
请注意,每次组件在所选日期加载时,此代码都会查询数据库。由于日期对象精确到毫秒,因此您可以将时间窗口设置得尽可能窄。请记住,如果在此期间从未加载组件,则不会查询数据库,直到if
条件再次满足。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)