Reactjs 还原程序如何更新存储
我是Redux的新手,在理解减速机的概念时发现了一些问题, 我可以看到很多例子显示它接受当前状态并返回更新状态, 我的问题是它如何通过返回新状态来更新存储(我发现很难理解其机制), 谁能给我解释一下吗。 这是我在学习相同概念时发现非常有用的图像。Reactjs 还原程序如何更新存储,reactjs,redux,reducers,Reactjs,Redux,Reducers,我是Redux的新手,在理解减速机的概念时发现了一些问题, 我可以看到很多例子显示它接受当前状态并返回更新状态, 我的问题是它如何通过返回新状态来更新存储(我发现很难理解其机制), 谁能给我解释一下吗。 这是我在学习相同概念时发现非常有用的图像。 调度 当您分派任何函数时,它将转到所有的减速机,如果分派类型匹配,它将更改该减速机的状态 functionName:()=>(dispatch)({type:'some-thing-to-match',payload}) const st
调度 当您分派任何函数时,它将转到所有的减速机,如果分派类型匹配,它将更改该减速机的状态
functionName:()=>(dispatch)({type:'some-thing-to-match',payload})
const store = combineReducers({
Reducer1:r1,
Reducer2:r2,
Reducer3:r3
})
减速器 处理状态变化
商店 所有减速器(根部减速器)的组合
例如,以TodoList中与r1匹配的dispatch函数为例,并更改其状态。然后通过“react redux”中的连接,我们将该reducers状态连接到TodoList
var mapStateToProps = state=>{
return:{
r1:r1
}
}
然后react将对状态的任何变化做出反应。如果r1的状态发生更改,则它将更新该组件
您的问题是它如何通过返回状态更新存储。您的减速机将获得存储(状态)和功能作为输入,并根据功能更改存储并将状态返回存储。
然后,我们可以将组件连接到该存储,以捕获其中的任何更改 正如我们在图片中看到的。Dispatch将更改存储的状态。然后 您可以导入(连接)该减速器以查看 组件。(此处TodoItem是该组件) 这是我在学习相同概念时发现非常有用的图像。
调度 当您分派任何函数时,它将转到所有的减速机,如果分派类型匹配,它将更改该减速机的状态
functionName:()=>(dispatch)({type:'some-thing-to-match',payload})
const store = combineReducers({
Reducer1:r1,
Reducer2:r2,
Reducer3:r3
})
减速器 处理状态变化
商店 所有减速器(根部减速器)的组合
例如,以TodoList中与r1匹配的dispatch函数为例,并更改其状态。然后通过“react redux”中的连接,我们将该reducers状态连接到TodoList
var mapStateToProps = state=>{
return:{
r1:r1
}
}
然后react将对状态的任何变化做出反应。如果r1的状态发生更改,则它将更新该组件
您的问题是它如何通过返回状态更新存储。您的减速机将获得存储(状态)和功能作为输入,并根据功能更改存储并将状态返回存储。
然后,我们可以将组件连接到该存储,以捕获其中的任何更改 正如我们在图片中看到的。Dispatch将更改存储的状态。然后 您可以导入(连接)该减速器以查看 组件。(此处TodoItem是该组件)
Redux存储区只是一个保存应用程序所有状态的对象。reducer是更新存储的唯一方法 reducer是一个纯函数,它接受旧状态并返回新状态。实际上,我们需要做的是,我们只提供存储当前拥有的旧状态,然后是我们要更改状态的新状态。有关reduce函数的详细说明,请参阅 简言之,reducer接受现有状态对象更新通过reducer函数传递的某些属性,并返回新的对象状态 下面的链接有更好的解释。这是一个很好的博客如何创建自己的redux。您将获得redux商店中发生的一切
Redux存储区只不过是一个保存应用程序所有状态的对象。reducer是更新存储的唯一方法 reducer是一个纯函数,它接受旧状态并返回新状态。实际上,我们需要做的是,我们只提供存储当前拥有的旧状态,然后是我们要更改状态的新状态。有关reduce函数的详细说明,请参阅 简言之,reducer接受现有状态对象更新通过reducer函数传递的某些属性,并返回新的对象状态 下面的链接有更好的解释。这是一个很好的博客如何创建自己的redux。您将获得redux商店中发生的一切
实际上,这是我缺少的关于减速机的部分,我没有捕捉到的部分是减速机输出,必须分配给存储属性
let Action={type:'SET_VISIBILITY_FILTER',text: 'test pay load'}
//Invoking Reducer
let store=todoApp({},Action)
//Reducer
function todoApp(state = initialState, action) {
switch (action.type) {
case SET_VISIBILITY_FILTER:
return Object.assign({}, state, {
message: action.text
})
default:
return state
}
}
实际上,这是我缺少的关于减缩器的部分,我没有捕捉到的部分是减缩器输出,必须分配给存储属性
let Action={type:'SET_VISIBILITY_FILTER',text: 'test pay load'}
//Invoking Reducer
let store=todoApp({},Action)
//Reducer
function todoApp(state = initialState, action) {
switch (action.type) {
case SET_VISIBILITY_FILTER:
return Object.assign({}, state, {
message: action.text
})
default:
return state
}
}
一个链接到一个潜在的解决方案总是受欢迎的,但请如果链接死了,答案仍然是答案。始终引用重要链接中最相关的部分,以防无法访问目标站点或永久脱机。考虑到仅仅是一个指向外部站点的链接是一个可能的原因。一个指向潜在解决方案的链接总是受欢迎的,但是如果链接消失,答案仍然是答案。始终引用重要链接中最相关的部分,以防无法访问目标站点或永久脱机。考虑到仅仅是一个指向外部站点的链接是一个可能的原因。很高兴听到:-)很高兴听到:-)