Reactjs 处于redux状态的Push数组元素返回'undefined'`
我想用redux来解决这个问题。它在redux不起作用。我的代码哪里出了问题 action/index.js: 减速器/mainReducer.js reducers/index.js: 我就是这样使用它们的:Reactjs 处于redux状态的Push数组元素返回'undefined'`,reactjs,redux,react-redux,Reactjs,Redux,React Redux,我想用redux来解决这个问题。它在redux不起作用。我的代码哪里出了问题 action/index.js: 减速器/mainReducer.js reducers/index.js: 我就是这样使用它们的: import React,{useffect}来自“React”; 从“./functions/getCities”导入getCities; 从“/RadioList”导入放射科医生; 从“react redux”导入{connect} 从“../redux/actions”导入{set
import React,{useffect}来自“React”;
从“./functions/getCities”导入getCities;
从“/RadioList”导入放射科医生;
从“react redux”导入{connect}
从“../redux/actions”导入{setCities}
功能状态列表(道具){
让标签=[],
城市=[];
useffect(()=>{
getCities(props.cityState)。然后((数组)=>{
for(设i=0;i
)
}
);
}
const mapStatesToProps=状态=>{
返回{
城市:state.setCitiesReducer.city,
}
}
导出默认连接(MapStateStorops,{setCities})(ListOfStates);
错误是:
TypeError:无法读取未定义的属性“map”请尝试以下操作:
function ListOfStates(props) {
let labels = [],
cities = [];
useEffect(() => {
getCities(props.cityState).then((array) => {
for (let i = 0; i < array.response.length; i++)
cities.push(array.response[i]);
props.setCities([...cities]);
});
}, []);
return (<>
{
props.city.map((labels, index) =>
<RadioList active={(labels === props.active)} key={index} label={labels}/>)
}
</>);
}
const mapStatesToProps = state => {
return {
city: state.setCitiesReducer.cities,
}
}
export default connect(mapStatesToProps, {setCities})(ListOfStates);
功能列表状态(道具){
让标签=[],
城市=[];
useffect(()=>{
getCities(props.cityState)。然后((数组)=>{
for(设i=0;i
)
}
);
}
const mapStatesToProps=状态=>{
返回{
城市:state.setCitiesReducer.cities,
}
}
导出默认连接(MapStateStorops,{setCities})(ListOfStates);
的答案帮助我改进最正确的答案
功能列表状态(道具){
让标签=[],
城市=[];
useffect(()=>{
getCities(props.cityState)。然后((数组)=>{
for(设i=0;i):(
道具.城市['0'].地图((标签,索引)=>
)
)}
);
}
const mapStatesToProps=状态=>{
返回{
城市:state.setCitiesReducer.cities,
}
}
导出默认连接(MapStateStorops,{setCities})(ListOfStates);
import {
GET_CITIES_BY_SPECIAL_STATE
} from '../actions/types';
const initialState = {
cities: []
}
const mainReducers = (state = initialState, action) => {
switch (action.type) {
case GET_CITIES_BY_SPECIAL_STATE:
return {...state, cities: state.cities.concat(action.payload)}
default:
return state;
}
}
export default mainReducers;
import { combineReducers } from 'redux';
import mainReducers from "../reducers/main";
const reducers = combineReducers({
setCitiesReducer: mainReducers
});
export default reducers;
import React, {useEffect} from "react";
import getCities from "../functions/getCities";
import RadioList from "./RadioList";
import {connect} from 'react-redux'
import {setCities} from '../redux/actions'
function ListOfStates(props) {
let labels = [],
cities = [];
useEffect(() => {
getCities(props.cityState).then((array) => {
for (let i = 0; i < array.response.length; i++)
cities.push(array.response[i]);
props.setCities([...cities]);
});
}, []);
return (<>
{
props.city.map((labels, index) =>
<RadioList active={(labels === props.active)} key={index} label={labels}/>)
}
</>);
}
const mapStatesToProps = state => {
return {
city: state.setCitiesReducer.city,
}
}
export default connect(mapStatesToProps, {setCities})(ListOfStates);
function ListOfStates(props) {
let labels = [],
cities = [];
useEffect(() => {
getCities(props.cityState).then((array) => {
for (let i = 0; i < array.response.length; i++)
cities.push(array.response[i]);
props.setCities([...cities]);
});
}, []);
return (<>
{
props.city.map((labels, index) =>
<RadioList active={(labels === props.active)} key={index} label={labels}/>)
}
</>);
}
const mapStatesToProps = state => {
return {
city: state.setCitiesReducer.cities,
}
}
export default connect(mapStatesToProps, {setCities})(ListOfStates);
function ListOfStates(props) {
let labels = [],
cities = [];
useEffect(() => {
getCities(props.cityState).then((array) => {
for (let i = 0; i < array.response.length; i++)
cities.push(array.response[i]);
props.setCities([...cities]);
});
}, []);
return (<>
{(props.city['0'] === undefined) ? (<p>Loading...</p>) : (
props.city['0'].map((labels, index) =>
<RadioList active={(labels === props.active)} key={index} label={labels}/>)
)}
</>);
}
const mapStatesToProps = state => {
return {
city: state.setCitiesReducer.cities,
}
}
export default connect(mapStatesToProps, {setCities})(ListOfStates);