Поскольку я только что начал работать с redux, вот важный вопрос о потоке данных в redux
Насколько я понимаю, я создал компонент как CountN:
import React from 'react'
import styles from '../../features/counter/Counter.module.css'
const CountN = (props) => {
const {countValue,actions} = props;
return (
<div>
<div className={styles.row}>
<button
className={styles.button}
aria-label="Increment value"
onClick={actions.increment}
>
+
</button>
<span className={styles.value}>{ countValue }</span>
<button
className={styles.button}
aria-label="Decrement value"
onClick={actions.decrement}
>
-
</button>
</div>
</div>
)
}
export default CountN
Затем я использую контейнер для передачи данных в CountN
Контейнер ниже:
import React from 'react';
import CountN from "../../components/countN"
import { connect } from 'react-redux'
import * as CountActions from '../../actions'
import { bindActionCreators } from 'redux';
const mapStateToProps = (state) =>({
countValue: state.value
})
const mapDispatchToProps = (dispatch) =>({
actions: bindActionCreators(CountActions,dispatch)
})
export default connect(
mapStateToProps,
mapDispatchToProps
)(CountN)
И для управления состояниями я создаю Reducer для установки состояний:
Reducer ниже:
import * as types from '../constants/CountTypes';
const initialState = [{
value: 0,
payload: 0,
}]
const counter = (state=initialState,action)=> {
switch (action.type){
case types.Increment:
return [{
value: state.value + 1,
payload: 0,
}]
case types.Decrement:
return [
...state,
{
value: state.value - 1
}
]
case types.IncrementByAmount:
return [{
value: state.value + action.payload ,
payload: action.payload
}
]
default:
return state
}
};
export default counter;
Плюс, я создаю магазин с "CreateStore (reducer)" для хранения данных,
Теперь проблема в том, что я получаю сообщение об ошибке:
TypeError: Невозможно прочитать свойство «приращение» неопределенного значения
Я понимаю, что состояние не определено,
Может ли какой-нибудь эксперт помочь мне выяснить, какая часть неверна, почему данные убежища не было передано в контейнер через "props" ???
Большое спасибо