Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.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
Reactjs 尝试将redux与react一起使用_Reactjs_Api_Redux_React Redux_Fetch Api - Fatal编程技术网

Reactjs 尝试将redux与react一起使用

Reactjs 尝试将redux与react一起使用,reactjs,api,redux,react-redux,fetch-api,Reactjs,Api,Redux,React Redux,Fetch Api,所以,我有一个react应用程序,我在其中使用多个API来获取一些数据,并尝试在其中使用redux。我已经看过一些redux教程,但当我开始思考如何将react应用程序转换为react redux时,我仍然有点困惑。比如如何转换这样的东西,我使用this.setState来redux。我知道我必须使用react thunk开始在操作中获取此api,但我仍然感到困惑。这是我的密码 componentDidMount(){ let url = ``; let url2 = ``;

所以,我有一个react应用程序,我在其中使用多个API来获取一些数据,并尝试在其中使用redux。我已经看过一些redux教程,但当我开始思考如何将react应用程序转换为react redux时,我仍然有点困惑。比如如何转换这样的东西,我使用this.setState来redux。我知道我必须使用react thunk开始在操作中获取此api,但我仍然感到困惑。这是我的密码

componentDidMount(){

  let url = ``;
  let url2 = ``;



    fetch(url,{
      method: 'GET'
    })
    .then((response)=> response.json())
    .then((responseJson) => {
      const newItems = responseJson.items.map(i => {
        return{
          name: i.name
        };
      })
      const newState = Object.assign({}, this.state, {
        items: newItems
      });

      console.log(newState);
      this.setState(newState);
    })
    .catch((error) => {
      console.log(error)
    });
    fetch(url2,{
      method: 'GET'
    })
    .then((response)=> response.json())
    .then((responseJson) => {
      const newItems = responseJson.item.map(i => {
        return{
          img: i.img.url
        };
      })
      const newarr = [...this.state.items, ...newItems];
      var resObj = newarr.reduce(function(res, obj) {
          for(var key in obj) {
              if (obj.hasOwnProperty(key)) {
                  res[key] = obj[key];
              }
          }
          return res;
      }, {});

      const newState = {
        items: [resObj]
      }

      this.setState(newState);
    })
    .catch((error) => {
      console.log(error)
    });


}
Redux一开始可能很吓人

首先要知道的是,不要使用this.setState,至少现在还没有

下面是redux和react的结构

为了简单起见,您只需要了解Dispatchers、Connect、Action和Reducer

动作:动作是一个简单的对象,表示改变状态的意图。操作是将数据导入存储的唯一方法。任何数据,无论是来自UI事件、网络回调还是其他来源(如WebSocket),最终都需要作为操作进行调度。 Reducer:Reducer也称为reduce函数,是一个接受累加和值并返回新累加的函数。它们用于将值集合缩减为单个值。 连接:连接基本上是组件从全局状态接收数据的一种方式。输入到组件的状态的输出。 Dispatchers:Dispatchers是用于输入以接触状态的函数。
无论您想在何处使用this.setState,您都希望使用一个分派,该分派与描述和定义分派函数的操作进行对话。这就是redux thunk将与fetch函数一起发挥作用的地方。dispatch调用action并从服务器提取数据后,Reducer会清理数据并将其发送回全局存储状态,在该状态下,使用connect命令,react会拾取数据。

您的确切问题是什么?