Все вышеупомянутые решения работают хорошо, когда вы имеете дело с настольным приложением JAVA. В случае приложения WebAPP следующие приведенные выше решения не будут работать. На самом деле это проблема с вашим сервером приложений, поэтому вам нужно добавить sqlite-jar под свой WEB-INF / lib, и только тогда вы сможете успешно запустить ваш webapp.
Для этого вы можно выполнить следующие шаги:
Перейти к:
Project-> Properties-> Deployment Assembly-> Add-> Архивы из файловой системы -> Далее -> Добавить
Перейдите в папку, в которой у вас есть свой sqlite-jar, выберите ее и нажмите OK.
Нажмите «Готово». OK.
Готово, теперь вы можете запустить свое приложение.
Спасибо
Проблема в твоих действиях. Это добавляет задачу с ключом payload
, но вы пытаетесь связать ее с action.task
(которого не существует).
Объект, который будет отправлен в ваш редуктор, будет выглядеть следующим образом:
{
type: 'ADD_TASK',
payload: {
task: 'like it'
}
}
Вы можете ясно видеть здесь, action.task
не существует, но action.payload.task
существует. Либо измените объект вокруг, либо измените его так, чтобы вы могли получить к нему доступ в action.task
:
const addTask = (task) => ({
type: 'ADD_TASK',
task
})
или , измените ваш редуктор:
function tasksReducer(state = initalState, action) {
switch (action.type) {
case 'ADD_TASK':
return {
...state,
tasks: state.tasks.concat([action.payload.task])
};
default:
return state;
}
}
[ 1115] В будущем: небольшая отладка прошла бы долгий путь (и вообще избежал бы этого вопроса). Простой console.log(action)
в верхней части вашего редуктора будет регистрировать вышеупомянутый объект, и вы можете сделать вывод, основываясь на том, почему он пытается добавить неопределенное, почему он не будет работать.