【发布时间】:2019-03-28 19:20:10
【问题描述】:
我有这样的商店
export const list = [
{
id: 0,
tableName: 'example',
tasks: [
{
task_id: 0,
task_short: 'lorem',
task_full: 'lorem ipsum lorem ipsum lorem ipsum',
time_created: '10:20',
time_created: null,
},
{
task_id: 1,
task_short: 'andsf',
task_full: 'lorem ipsum tes tes est',
time_created: '13:20',
time_created: null,
}
]
}
]
如果我更改 tableName 或使用此 reducer 添加新的
import { list } from './list'
export default (state = list, action) => {
const { type, payload } = action
switch(type) {
case 'ADD_TABLE':
return [...state, payload]
case 'DELL_TABLE':
return state.filter( ( tabl ) => tabl.id != payload )
case 'CHANGE_TITLE':
let basket = state.map( bas => bas.id == payload.id ? bas.tableName = payload.val : bas )
return [...state]
case 'ADD_TASK':
const newer = state.map( tas => tas.id == payload.id ? tas.tasks.push(payload.t) : tas)
return [...state]
default:
return state
}
}
一切正常!!
但如果我在 tasks 中推送新任务,它会在控制台中存储,但不会呈现。
为了让它呈现,我必须改变 tableName ,然后它就会出现
我想问题在这里
case 'ADD_TASK':
const newer = state.map( tas => tas.id == payload.id ? tas.tasks.push(payload.t) : tas)
return [...state]
这里是演示 http://kanban.antus.pro/
【问题讨论】:
标签: javascript arrays reactjs object react-redux