Я довольно новичок в редуксе, и у меня возникают проблемы с анализом данных JSON, когда я mapStateToProps внутри моего компонента реагирования.Например, если я в console.log (this.props.chartData [0]) добавлю свой компонент реагирования, консоль отобразит массив, к которому я пытаюсь получить доступ, однако, когда я пытаюсь получить доступ к определенному элементу в массиве с помощью консоливедя журнал (this.props.ChartData [0] .title), я получаю сообщение об ошибке:
[enter image description here][1]
class ChartContainer extends Component {
componentWillMount(){
this.props.chartChanged();
}
render(){
console.log(this.props.chartData[0]);
return(
<Text style={styles.textStyle}>
test
</Text>
);
}
}
const mapStateToProps = state => {
return {
chartData: state.chart
}
};
export default connect (mapStateToProps, {chartChanged}) (ChartContainer);
Интересно, что у меня нет проблем с доступом к (this.props.ChartData [0] .title) внутри моего редуктора.
import {CHART_CHANGED} from '../actions/types';
const INITIAL_STATE = { chartData: [] };
export default (state = INITIAL_STATE, action) => {
console.log(action);
switch (action.type) {
case CHART_CHANGED:
console.log("action");
console.log(action.payload[0].title);
return{...state, chartData: action.payload};
default:
return state;
}
};
Вот вызов API в моем файле действий:
export const chartChanged = (chartData) => {
return (dispatch) => {
axios.get('https://rallycoding.herokuapp.com/api/music_albums')
.then((chartData) =>{
dispatch({type: CHART_CHANGED, payload: chartData.data});
});
};
};
Если кто-то может объяснить, почему это происходит, я был бы очень благодарен.