Reactjs 尝试将redux与react一起使用
所以,我有一个react应用程序,我在其中使用多个API来获取一些数据,并尝试在其中使用redux。我已经看过一些redux教程,但当我开始思考如何将react应用程序转换为react redux时,我仍然有点困惑。比如如何转换这样的东西,我使用this.setState来redux。我知道我必须使用react thunk开始在操作中获取此api,但我仍然感到困惑。这是我的密码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 = ``;
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会拾取数据。您的确切问题是什么?