javascript - 使用 React Redux 加载栏:无法读取未定义的属性“默认”
问题描述
编辑
使用更新的更新包更新并安装了 lib,但现在出现以下错误,
TypeError: Cannot read property 'default' of undefined
Function.mapStateToProps [as mapToProps]
node_modules/react-redux-loading-bar/build/loading_bar.js:300
297 |
298 | var mapStateToProps = function mapStateToProps(state, ownProps) {
299 | return {
> 300 | loading: state.loadingBar[ownProps.scope || _loading_bar_ducks.DEFAULT_SCOPE]
301 | };
302 | };
303 |
以前的:
我在这里React Redux Loading Bar
使用TylerMcginnis 。请注意,我没有使用加载栏中间件,而是使用调度。我错过了什么或做错了什么?
TypeError: state.loadingBar is undefined
Uncaught TypeError: state.loadingBar is undefined
Redux 7
React 3
ConnectFunction Redux
React 18
js index.js:20
Webpack 7
这是代码,
import React, { Fragment } from 'react';
import { connect } from 'react-redux';
// import LoadingBar from 'react-redux-loading';
import LoadingBar from 'react-redux-loading-bar';
function Login({ users, userKeys, loading }) {
return (
<Fragment>
<LoadingBar />
<div className='container'>
{loading ? null : (
<div>
<label htmlFor='users'>Please select a User</label>
<br />
<select id='users' name='usersList'>
{userKeys.map(id => (
<option value={id}>{users[id].name}</option>
))}
</select>
</div>
)}
</div>
</Fragment>
);
}
function mapStateToProps({ users }) {
return {
loading: users === null,
users,
userKeys: Object.keys(users)
};
}
export default connect(mapStateToProps)(Login);
减速机指数:
import { combineReducers } from "redux";
import { loadingBarReducer } from 'react-redux-loading-bar';
import questions from './questions';
import users from './users';
export default combineReducers({
loadingBarReducer,
questions,
users
});
行动 :
export function handleInitialData() {
return dispatch => {
dispatch(showLoading());
return getInitialData().then(({users, questions}) => {
dispatch(receiveQuestions(questions));
dispatch(receiveUsers(users));
dispatch(hideLoading());
});
};
}
解决方案
修复了为大家创建沙盒示例时的问题:D ...
主要问题:
reducer 应该具有对象/字段名称,loadingBar
以便库能够识别 reducer。
这一小改动解决了减速器中的问题,
export default combineReducers({ users, loadingBar: loadingBarReducer });
推荐阅读
- angular - 使用 Angular 进行分页过滤
- .net - 调试本地存储的自己的 NuGet 包
- javascript - 使用 Javascript 从 Excel 文件中提取某些数据行
- http - Angular 7 中的 Http 帖子返回无效响应
- python - 根据字典中的值更新熊猫数据框
- ubuntu - Ubuntu 在 18.04 中限制运行 curl 命令
- typescript - 打字稿:如何根据对象键/值类型在 ES6 映射中创建条目
- html - 如何判断一个按钮是否被点击
- php - 如何在没有任何外部数据库的情况下将 mysql 与 laravel 一起使用
- javascript - 禁用AngularJS下拉多选