redux [错误:无效的挂接调用,只能在函数组件的主体内部调用挂接

ovfsdjhp  于 2022-12-23  发布在  其他
关注(0)|答案(1)|浏览(134)

这是我的错误:
err [错误:无效的挂接调用。只能在函数组件的主体内部调用挂接。以下原因之一可能会导致这种情况:
1.您可能有不匹配的React和呈现器版本(例如React DOM)
1.你可能违反了钩子的规则
1.您可能在同一个应用中有多个React副本有关如何调试和修复此问题的提示,请参阅https://reactjs.org/link/invalid-hook-call。]
代码:

let url = config.baseURL + 'home_data.php?user_id=' + user_id + '&APP_VERSION=1';
    consolepro.consolelog('url', url);
    apifuntion
      .getApi(url)
      .then(obj => {
        if (obj.success == 'true') {
          consolepro.consolelog('homedataoooooooooooooooooooooooooooooooooooooooooooooooooooooo', obj);

          const dispatch = useDispatch();
          const dataFromObj = useSelector(state => state.Reducers);

          consolepro.consolelog("dattttttttttttttttttttttttttttttttttttttttttttttttt", dataFromObj)

          dispatch(getDataMethod(obj));

          check_notification_num = obj.check_notification_num;
          // (main_category_arr = obj.category_arr);
          config.content_arr = obj.content_arr;
          if (config.device_type == 'ios') {
            config.guest_status = obj.guest_status;
          } else {
            config.guest_status = false;
          }

          localStorage.setItemObject('user_arr', obj.user_details);
          this.setState({
            category_arr: obj.category_arr,
            new_item: obj.all_product,
          });
        } else {
          if (
            obj.active_status == '0' ||
            obj.msg[config.language] == msgTitle.usernotexit[config.language]
          ) {
            config.checkUserDeactivate(this.props.navigation);
          } else {
            msgProvider.alert(
              msgTitle.information[config.language],
              obj.msg[config.language],
              false,
            );
          }
          return false;
        }
      })
      .catch(err => {
        consolepro.consolelog('err', err);
      });

我正在创建一个项目,我的数据来自PHP数据库,但它太慢了。
所以我用了redux,但是它给了我一个错误,我不知道如何在类内组件中使用redux,但是我知道如何在函数组件中使用
谁能给我一个react native中使用redux的类组件的完整示例?

3mpgtkmj

3mpgtkmj1#

首先,确保这个文件是一个React函数组件,钩子只能从函数组件的主体调用。
其次,将这些行移动到组件的根范围:

const dispatch = useDispatch();
const dataFromObj = useSelector(state => state.Reducers);

无法从其他函数的范围调用挂接。

相关问题