У меня есть store, с редьюсером, в котором по клику на кнопку я диспатчу соответственный action. Тут все работает.
Потом я подписываю другой компонент следующим образом:
const matchStateToProps = (state)=>{
return {
title: state.title,
text: state.text
}
}
export default connect(matchStateToProps)(Notes)
Этот код не запускается с ошибкой
TypeError: Cannot read property 'title' of undefined
, ошибка как раз в
return {
title: state.title,
text: state.text
}
Я конечно могу сделать проверку на state:
const matchStateToProps = (state)=>{
if(!state) return {}
return {
title: state.title,
text: state.text
}
}
export default connect(matchStateToProps)(Notes)
И это действительно работает, но так же не должно быть.
Код store:
import {createStore} from 'redux'
const notesReducer = (state = {text: "", title: ""}, action)=>{
console.log(state)
switch(action.type){
case "ADD_NOTES":
return {...state, "text" :action.text, "title":action.title}
break;
case 'NOTE_DID_LOAD':
return {state}
break;
default:
console.log("Unreal dispatching ", action)
}
}
export default createStore(notesReducer);
P.S. В функции matchStateToProps я делал вывод в консоль переменной state, там в первый момент времени пустота, хотя не должна быть, я же задал начальное состояние?