Reactjs React Native Redux:已调度操作,返回结果
在redux中,当调度一个操作时,reducer将相应地更改状态,调用该操作的组件也可以访问该状态(通过props由提供者传递)。我说得对吗 状态是访问组件中操作结果的唯一方法吗?(调用动作的组件) 将回调函数传递给操作,并使用它将结果发送回组件,怎么样 在redux中,当调度一个操作时,reducer将相应地更改状态,调用该操作的组件也可以访问该状态(通过props由提供者传递)。我说得对吗 当在redux模式中触发一个操作时,所有的还原器都会运行,但只有对这种类型的操作起作用的还原器才会在存储上执行还原作业。有时,您可以有一个不返回操作类型的操作。如果我想要一个reducer来减少应用程序存储中的状态,我通常会返回一个action对象,否则我就不需要了。请记住,当一个状态减少时,所有呈现其值的组件都将重新呈现 状态是访问组件中操作结果的唯一方法吗?(调用动作的组件) 我认为您可以设计一个操作来在执行后返回结果,但是您不会完全使用redux模式 将回调函数传递给操作,并使用它将结果发送回组件,怎么样 我以前从未尝试过,但我认为承诺是一个不错的选择。我总是使用Reactjs React Native Redux:已调度操作,返回结果,reactjs,react-native,redux,react-redux,redux-thunk,Reactjs,React Native,Redux,React Redux,Redux Thunk,在redux中,当调度一个操作时,reducer将相应地更改状态,调用该操作的组件也可以访问该状态(通过props由提供者传递)。我说得对吗 状态是访问组件中操作结果的唯一方法吗?(调用动作的组件) 将回调函数传递给操作,并使用它将结果发送回组件,怎么样 在redux中,当调度一个操作时,reducer将相应地更改状态,调用该操作的组件也可以访问该状态(通过props由提供者传递)。我说得对吗 当在redux模式中触发一个操作时,所有的还原器都会运行,但只有对这种类型的操作起作用的还原器才会在存
axios
从服务器获取我的结果,如果我有结果,那么另一个axios将被分派给reducer以更新状态,否则将分派一个用于错误处理的reducer
//actions
const axios from 'axios'
const FETCH_ITEMS = 'FETCH_ITEMS'
const FETCH_ITEMS_RECEIVED = 'FETCH_ITEMS_RECEIVED'
const FETCH_ERROR = 'FETCH_ERROR'
const SERVER_BASE_URL = 'localhost:4000/'
export function itemsReceive(items){
return {
type: FETCH_ITEMS_RECEIVED,
items
}
}
export function itemsFetchError(){
return {
type: FETCH_ERROR,
errorMsg: 'There was an issue fetching items.'
}
}
//This function shall dispatch the two actions above in case we have the expected result or an error.
export function fetchItems(){
return dispatch => {
axios.get(SERVER_BASE_URL + 'items').
then(function(res){
const { data } = res
if(data.status === 0){ //data.status is just a status sent by my server to show the response is good.
const items = data.response
dispatch(itemsReceive(items))
}else{
dispatch(itemsFetchError())
}
}).catch(function(err)){//this error here is usually caused by network disruption
dispatch(itemsFetchError())
}
}
}
在redux中,当调度一个操作时,reducer将相应地更改状态,调用该操作的组件也可以访问该状态(通过props由提供者传递)。我说得对吗
当在redux模式中触发一个操作时,所有的还原器都会运行,但只有对这种类型的操作起作用的还原器才会在存储上执行还原作业。有时,您可以有一个不返回操作类型的操作。如果我想要一个reducer来减少应用程序存储中的状态,我通常会返回一个action对象,否则我就不需要了。请记住,当一个状态减少时,所有呈现其值的组件都将重新呈现
状态是访问组件中操作结果的唯一方法吗?(调用动作的组件)
我认为您可以设计一个操作来在执行后返回结果,但是您不会完全使用redux模式
将回调函数传递给操作,并使用它将结果发送回组件,怎么样
我以前从未尝试过,但我认为承诺是一个不错的选择。我总是使用axios
从服务器获取我的结果,如果我有结果,那么另一个axios将被分派给reducer以更新状态,否则将分派一个用于错误处理的reducer
//actions
const axios from 'axios'
const FETCH_ITEMS = 'FETCH_ITEMS'
const FETCH_ITEMS_RECEIVED = 'FETCH_ITEMS_RECEIVED'
const FETCH_ERROR = 'FETCH_ERROR'
const SERVER_BASE_URL = 'localhost:4000/'
export function itemsReceive(items){
return {
type: FETCH_ITEMS_RECEIVED,
items
}
}
export function itemsFetchError(){
return {
type: FETCH_ERROR,
errorMsg: 'There was an issue fetching items.'
}
}
//This function shall dispatch the two actions above in case we have the expected result or an error.
export function fetchItems(){
return dispatch => {
axios.get(SERVER_BASE_URL + 'items').
then(function(res){
const { data } = res
if(data.status === 0){ //data.status is just a status sent by my server to show the response is good.
const items = data.response
dispatch(itemsReceive(items))
}else{
dispatch(itemsFetchError())
}
}).catch(function(err)){//this error here is usually caused by network disruption
dispatch(itemsFetchError())
}
}
}
在redux中,当调度操作时,reducer将更改状态
因此,调用动作的组件也具有
对状态的访问(由提供程序通过道具传递)。我说得对吗
是的,你说得对。调度操作时,您需要指定操作创建者,在操作创建者内部您可以触发同步或异步操作(使用thunk或saga),并且每个操作创建都有操作类型和负载(可选)。在调用操作创建者内部的操作时,所有还原器都将获得通知并匹配操作传递的类型
状态是否是访问中操作结果的唯一方法
组件?(调用操作的组件)
作为redux的最佳实践,状态应该由reducer(作为一个纯函数)来更改,如果您在监听该状态,它将作为一个道具传递给组件
将回调函数传递给操作,并使用它来
是否将结果发送回组件
您可以将回调函数传递给action creator,action creator只是一个函数
在redux中,当调度操作时,reducer将更改状态
因此,调用动作的组件也具有
访问状态(通过提供者提供的道具)。我说的对吗
是的,你是对的。当动作被调度时,你需要指定动作创建者,在动作创建者内部你可以触发同步或异步动作(使用thunk或saga),并且每个动作创建都有动作类型和负载(可选)。在调用动作创建者内部的动作时,所有还原器都将得到通知并匹配动作传递的类型
状态是否是访问中操作结果的唯一方法
组件?(调用操作的组件)
作为redux的最佳实践,状态应该由reducer(作为一个纯函数)来更改,如果您在监听该状态,它将作为一个道具传递给组件
将回调函数传递给操作,并使用它来
是否将结果发送回组件
您可以将回调函数传递给action creator,action creator只是一个函数。谢谢您的详细回答。谢谢您的详细回答。