javascript - 值未定义反应js redux
问题描述
我想要实现的是从 url 加载数据并使其处于状态,但“Ilceler”未定义。我得到了什么(TypeError:无法读取未定义的属性'ilceSelected')我做错了谁能帮助我......我是redux的核心概念(动作减速器存储等)我想我是在操作文件中调用 handleGetIlce fn 时出现问题
Main Widget
<React.Fragment>
<Ilceler />
{props.address.ilceSelected ? <Mahalleler /> : null}
{props.address.mahalleSelected ? <Sokaklar /> : null}
{props.address.sokaklarSelected ? <Kapilar /> : null}
</React.Fragment>
const Ilceler = (props) => {
let [ fetchedData, setFetchedData ] = useState(false);
useEffect(() => {
const ilceUrl = 'URL';
!fetchedData &&
axios.get(ilceUrl).then((response) => response.data).then((ilceList) => {
setFetchedData(true);
let ilceler = [];
ilceList.Aaa.Bb.C.forEach((ilce) => {
ilceler.push({
label: ilce.ADI,
value: ilce.ID
});
});
props.handleGetIlce(ilceler);
});
});
return (
<React.Fragment>
<Select
name='adresSelect'
options={props.address.ilceler}
onChange={props.handleIlceChange}
/>
</React.Fragment>
);
};
const mapStateToProps = (state) => ({
address: state.address
});
const mapDispatchToProps = function(dispatch) {
return bindActionCreators({ ...addressActions }, dispatch);
};
actions
export const actions = {
handleGetIlce: (ilceler) => {
return {
type: GET_ILCE,
payload: ilceler
};
}
}
reducers
import { GET_ILCE } from '../../constants';
export const initialState = {
ilceler: []
};
export default (state = initialState, action) => {
switch (action.type) {
case GET_ILCE:
return {
...state,
ilceler: action.payload
};
default:
return state;
}
};
解决方案
您应该使用 react-redux 函数中的“连接”连接您的组件以访问您的商店并将其作为道具发送到您的组件
const mapStateToProps = (state) => ({
address: state.address
});
const mapDispatchToProps = function(dispatch) {
return bindActionCreators({ ...addressActions }, dispatch);
};
const MainWidgetConnected = connect(
mapStateToProps,
mapDispatchToProps
)(MainWidget);
推荐阅读
- vb6 - 如何添加 VB6 Adodc.recordset.find
- onelogin - OneLogin - OIDC - 隐式流 - login_hint
- javascript - Chrome 在 DOM 加载之前加载 js 事件
- javascript - 使用正负值的 JS 图表(单线图)
- linux-kernel - 如何从 linux-at91 4.14 版本的用户空间支持启用 sysfs“导出”gpio 编号?
- javascript - 从数组创建 DOM:
仅添加到第一个 Div,而不是每个
- asp.net-core - 如何将配置设置添加到 _Layout.cshtml 共享 Razor 页面
- c++ - 为什么我的编译器对 c 字符串类型的向量存在内存问题?
- reactjs - 在 NPM Electron React 项目中使用 Material Design 图标
- python - 当 asyncio.PriorityQueue 处于 maxsize 并且我 put() 新项目时,如何将项目推出?