React Redux-如何在应用程序状态中设置字段
React-Redux - How to set fields inside state of application?
我正在用React和Redux学习分形结构,但当我想设置应用程序状态时,我发现它被阻止了。
我会尽力解释我的问题
src/router/Counter/index.js
import { injectReducer } from '../../store/reducers'
export default (store) => ({
path: 'counter',
getComponent (nextState, cb) {
require.ensure([], (require) => {
const Counter = require('./containers/CounterContainer').default
const reducer = require('./modules/counter').default
/* Add the reducer to the store on key 'counter' */
injectReducer(store, { key: 'counter', reducer })
cb(null, Counter)
}, 'counter')
}
})
src/router/Counter/modules/Counter.js
// ------------------------------------
// Constants
// ------------------------------------
export const COUNTER_INCREMENT = 'COUNTER_INCREMENT'
// ------------------------------------
// Actions
// ------------------------------------
export function increment (value = 1) {
return {
type: COUNTER_INCREMENT,
payload: value
}
}
export const actions = {
increment
}
// ------------------------------------
// Action Handlers
// ------------------------------------
const ACTION_HANDLERS = {
[COUNTER_INCREMENT]: (state, action) => state + action.payload
}
// ------------------------------------
// Reducer
// ------------------------------------
const initialState = 0
export default function counterReducer (state = initialState, action) {
const handler = ACTION_HANDLERS[action.type]
return handler ? handler(state, action) : state
}
src/routes/Counter/containers/CounterContainer.js
import { connect } from 'react-redux'
import { increment } from '../modules/counter'
import Counter from 'components/Counter'
const mapActionCreators = {
increment: () => increment(1)
}
const mapStateToProps = (state) => ({
counter: state.counter
})
export default connect(mapStateToProps, mapActionCreators)(Counter)
我想在计数器状态下实现设置更多的字段,因为我可以通过分离来传递道具。即:
const mapStateToProps = (state) => ({
max: state.counter.max
min: state.counter.min
})
那么,如何在state.counter中设置字段呢?
谢谢。
您需要使用reducer来更新状态属性。像这样的东西给你的柜台。
function counter(state = initialState, payload) {
switch (action.type) {
case UPDATE_COUNTER:
return Object.assign({}, state, {
counter: {max:payload.max,min:payload.min}
})
default:
return state
}
}
相关文章:
- 如何为后台更改程序代码设置cookie
- 在JavaScript Windows 8应用程序中设置桌面壁纸
- 使用应用程序状态js和视图在angular js url上传递两个参数
- jQuery在MVC应用程序中设置JS变量
- 来自应用程序状态的Jquery数据表源
- 检测Ionic中特定的应用程序状态变化
- 时间戳日期&时间格式-应用程序脚本-设置日期和时间格式
- 如何将链接状态设置为在用户访问另一个页面之前保持
- 通过单选按钮状态设置HTML元素的可见性
- 使用AsyncStorage实例化持久应用程序状态
- 引导程序窗体帮助程序-状态选择器-选择类
- Firefox赢得了't在keydown处理程序中设置input.value..但它在调试时起作用
- 如何为Tide Sdk应用程序窗口设置固定大小
- 如何在类似Om的不可变应用程序状态下对关系数据进行建模
- 如何在离子应用程序中设置起始页
- 在待办事项列表应用程序中设置更新
- 将状态参数传递给状态提供程序中设置的控制器
- 以程序方式设置时,未在视图模型中填充选中状态
- React Redux-如何在应用程序状态中设置字段
- Angular&高图表.通过程序将状态设置为悬停