Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.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状态初始化Axios客户端_Javascript_Reactjs_Redux_Axios - Fatal编程技术网

Javascript 使用Redux状态初始化Axios客户端

Javascript 使用Redux状态初始化Axios客户端,javascript,reactjs,redux,axios,Javascript,Reactjs,Redux,Axios,我正在开发一个React/Electron应用程序,我想使用Redux存储中的数据初始化Axios客户端。例如,在第一次加载应用程序时,用户输入一些信息,比如用户名。这将被推送到Redux存储并保存在localStorage中以供将来使用,然后在axios客户端的baseURL中用于后续网络请求 问题是,我无法让axios使用react redux和connect函数。Axios的函数导出似乎被导出的HOC隐藏,每次调用其函数时,都会出现以下错误: TypeError:_Client2.defa

我正在开发一个React/Electron应用程序,我想使用Redux存储中的数据初始化Axios客户端。例如,在第一次加载应用程序时,用户输入一些信息,比如用户名。这将被推送到Redux存储并保存在localStorage中以供将来使用,然后在axios客户端的baseURL中用于后续网络请求

问题是,我无法让axios使用react redux和connect函数。Axios的函数导出似乎被导出的HOC隐藏,每次调用其函数时,都会出现以下错误:

TypeError:_Client2.default.get不是函数 我的客户看起来像这样:

从axios导入axios; 从react redux导入{connect}; const Client={init}=>{ 返回axios.create{ baseURL:`http://${init.ip}/api/${init.username}` }; }; 常量mapStateToProps=状态=>{ 返回{init:state.init}; }; 导出默认连接 MapStateTops, {} 客户
我做错了什么?

在react-redux文档中,它说返回connect是一个包装函数,它接受您的组件并返回一个包装组件及其注入的附加道具。所以它返回包裹react组件的react组件。您的函数返回axios客户端,它不会呈现任何内容

我更喜欢使用action creators并在那里进行api调用,因此我不会传递axios客户端或其他任何东西。但如果我决定这样做,我会在reducer中初始化axios客户端并保存在存储中。然后将其作为道具传递给客户

const mapStateToProps = state => {
  return { axios: state.axios };
};

在@Ozan的回答之上,在这种情况下,您可以创建一个主组件,将其与redux连接,并在装载时发送一个操作来初始化axios客户端。

您应该在加载App.js之前启动axios客户端。我建议您可以使用redux axios作为redux中间件,并使用action调用api