Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 反应+;具有多种用途的Redux状态_Javascript_Node.js_Reactjs_Redux_React Redux - Fatal编程技术网

Javascript 反应+;具有多种用途的Redux状态

Javascript 反应+;具有多种用途的Redux状态,javascript,node.js,reactjs,redux,react-redux,Javascript,Node.js,Reactjs,Redux,React Redux,我没有代码可以共享。我使用的模板是使用react+Redux构建的 我遇到的问题是,如果我想让多个用户使用该应用程序,那么状态会与每个人共享。用户之间没有区别。所以我的问题是,一次使用会看到另一个用户的状态,而这个用户之前刚刚登录。另一个问题是,我正在提取数据以显示在图表中,每次提取数据时,数据都会以某种方式递增,如果有多个用户登录,则情况会变得更糟 我的问题是。。。如何管理具有多个用户和Redux的react应用程序?我找到的大多数教程似乎都假设只有一个用户。最简单的解决方案是,如果你的应用程

我没有代码可以共享。我使用的模板是使用react+Redux构建的

我遇到的问题是,如果我想让多个用户使用该应用程序,那么状态会与每个人共享。用户之间没有区别。所以我的问题是,一次使用会看到另一个用户的状态,而这个用户之前刚刚登录。另一个问题是,我正在提取数据以显示在图表中,每次提取数据时,数据都会以某种方式递增,如果有多个用户登录,则情况会变得更糟


我的问题是。。。如何管理具有多个用户和Redux的react应用程序?我找到的大多数教程似乎都假设只有一个用户。

最简单的解决方案是,如果你的应用程序使用的是从API获取的数据库,每次启动请求时,你都应该首先清除数据

下面是我的reducer示例(我正在使用redux工具)

行动

export const fetchRootGetRoleDetail = ({ roleId }) => async (
  dispatch,
  getState
) => {
  const state = getState();
  const selectedState = state[PARENT_NAMESPACE][CURRENT_NAMESPACE];
  const { isLoading } = selectedState;
  if (isLoading) return;
  try {
    dispatch(getRoleDetailStart());
    const data = await restRootGetRoleDetail({
      roleId,
    });
    dispatch(
      getRoleDetailSuccess({
        data,
      })
    );
  } catch (err) {
    if (isValidJSON(err)) {
      return dispatch(getRoleDetailError(JSON.parse(err).message));
    }
    dispatch(getRoleDetailError(err));
  }
};


这与React或Redux没有任何关系。如果多个登录用户共享同一状态,则in意味着所涉及的服务器不基于用户id或会话存储数据。您需要显示相关的后端(节点)代码。
export const fetchRootGetRoleDetail = ({ roleId }) => async (
  dispatch,
  getState
) => {
  const state = getState();
  const selectedState = state[PARENT_NAMESPACE][CURRENT_NAMESPACE];
  const { isLoading } = selectedState;
  if (isLoading) return;
  try {
    dispatch(getRoleDetailStart());
    const data = await restRootGetRoleDetail({
      roleId,
    });
    dispatch(
      getRoleDetailSuccess({
        data,
      })
    );
  } catch (err) {
    if (isValidJSON(err)) {
      return dispatch(getRoleDetailError(JSON.parse(err).message));
    }
    dispatch(getRoleDetailError(err));
  }
};