- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在我的应用程序中使用 React-redux,我在使用 connect(mapStateToProps,mapDispatchToProps)(Component)
时遇到了这个问题,并且能够使用映射成功地操作 redux 状态 dispatch 。使用开发工具,我看到状态已成功更改,但映射的 Prop 在任何组件中始终未定义。
我正在尝试的示例组件:
class DashboardPage extends React.Component {
componentWillMount() {
console.log(this.props.idToken);
}
render() {
return (
<div>
<div className="dashboard-container">
<p>{this.props.idToken}</p>
<button onClick={() => {this.props.logout()}}>
LOGOUT
</button>
<button onClick={() => {browserHistory.push('/app/play')}}>
PLAY
</button>
<button onClick={() => {this.props.setIsLoading(true)}}>
TEST
</button>
</div>
</div>
);
}
}
const mapStateToProps = (state) => {
return {
idToken: state.idToken,
};
};
export default connect(mapStateToProps, { logout, setIsLoading })(DashboardPage);
但是,这以前一直有效。我从代码中休息了一段时间,所以我不记得我做了什么来打破这个,但我很确定它与 React 路由器有关,所以这是我的路线:
export default (
<Route path="/" component={App}>
<Route path="app" component={Authorized}>
<IndexRedirect to="/app/dashboard"/>
<Route path="dashboard" component={DashboardPage} />
<Route path="play" component={PlayPage}/>
</Route>
<Route path="login" component={Login} />
</Route>
);
我基本上使用 App
作为主容器,我在其中调用一个 thunk Action 来检查 localStorage 中是否有 token ,如果是,则调用和 Action 重新应用 token 状态(相同成功登录时调用的操作)。此操作在重新应用状态之前将用户重定向到 /app/dashboard
,如果 localStorage 中没有保存凭据,应用程序将自动重定向到 /login
。
我的index.js
:
const appRoot = document.getElementById('app-root');
const store = createStore(reducers, compose(
applyMiddleware(thunk),
window.devToolsExtension ? window.devToolsExtension() : f => f
));
ReactDOM.render(
<Provider store={store}>
<Router history={browserHistory} routes={routes} />
</Provider>
, appRoot);
我在路由方面做错了什么,导致 mapStateToProps
无法正确返回 props 吗?
在此先感谢您的帮助。
编辑:我刚刚将我的 mapStateToProps
编辑为此,以查看状态是否通过:
const mapStateToProps = (state) => {
console.log(state);
return {
idToken: state.idToken,
};
};
并且日志输出是undefined
最佳答案
我觉得你在更新状态时没有在 reducer 中添加你以前的状态。例如,如果您的新状态是 return {action.something},那么它可能是 {...state , action.something}。我有这样的问题。我不是专家,仍在工作和学习。
关于javascript - Redux 状态正在更改,但使用 mapStateToProps 时 Prop 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37376665/
我正在尝试使用 mapStateToProps 像这样: const mapStateToProps = (state: { logedIn: boolean; } ) => { return {
这个问题在这里已经有了答案: React - User-Defined JSX Components Not rendering (1 个回答) 4年前关闭。 我正在尝试创建一个使用 mapState
我有这个错误: TypeError: Cannot read property 'map' of undefined 并且不知道如何this.props.movies未定义,而我将initialS
我正在学习如何从头开始实现 redux,并且遇到了组件重新渲染的问题。我在 StackOverflow 上搜索这个问题已经产生了无数的结果,其中问题的答案总是“你改变了你的状态”。我已经阅读了 con
react/redux 新手。想知道为什么我的组件在触发操作时没有刷新。也不确定 reducer 是否是操作存储的好地方,但它是纯粹的,所以它应该可以工作。 发生的情况是操作被触发并且存储被更新。但是
我现在正在开发一个项目,其中涉及相当多的团队,并且变量初始化和传递到商店的地方有点困惑。 商店看起来主要是这样的。 const initialState = { myStoreData: nu
我知道我们可以通过这样做轻松地在组件状态中发送 mapStateToProps 的内容: constructor(props){ super(props); this.state = {
import React, { Component, Fragment } from "react"; import { connect } from "react-redux"; import {
我是 react 新手,无法调试为什么 mapStateToProps 没有运行。请参阅 login.js 中的最后一个函数。 我已在 mapStateToProps 函数中添加了警报语句,但它只是没
我正在调用我的 API 以使用其 ID 获取特定对象。 当我在 mapStateToProps 方法中调用 console.log 时,打印了整个对象,但状态的“anuncio”属性未定义当我尝试使用
我正在用头撞墙。我已经使用 React+Redux 顺利运行了一段时间,然后我使用 Chrome 删除了我的 localStorage,一切都变得一团糟。现在我无法让 mapStateToProps
我的 React 应用程序遇到一些问题。我正在尝试对用户进行身份验证并从后端获取一些数据,而 mapStateToProps 没什么问题。这就是我成功获得唯一用户的方法: const mapStat
我正在尝试使用 redux 将员工数据存储在商店中,但是当我尝试使用 mapStateToProps 访问商店时,它返回空数组,并且被调用两次。第一次状态有值,但第二次当我检查它时它会返回空数组 re
有没有类似mapStateToProps的函数,可以让我们在React中把Redux状态连接到函数式组件上? 将状态作为 props 从父组件传递是唯一的解决方案吗? 最佳答案 您绝对可以将 mapS
我刚开始玩 react/redux。我只想输入一些文本并点击提交,然后将其传递给另一个组件,该组件将显示输入的内容。 我知道我可以从 A 点到 B 点获取数据,因为如果我使用 store.subscr
我有一个带有 Redux 存储的 React 应用程序,它连接到 websocket 并在表格中向用户显示信息。我有 RxJs 中间件,它连接到 websocket 并使用内容分派(dispatch)
我说的是 connect 的 mapStateToProps 参数. 我的一个组件有一个名为 rules 的属性,它是一个函数数组。在 mapStateToProps 中,我调用这些规则,传入当前状态
我正在学习 React 和 Redux,发现了以下我无法理解的问题,我存储了一个可能如下所示的配置对象: { general:{duration:100,strength:100},
我需要访问容器内 redux 状态的特定属性。这些属性将依次用作获取其他嵌套属性并将它们映射到组件 props 的键。我使用immutableJS。 是在 mapStateToProps 中执行此操作
我正在寻找有关处理 mapStateToProps 中错误的最稳健、最可靠方法的建议,以及是否建议在 React+Redux 应用程序中尝试此级别。 例如,如果我将 react-redux 的 con
我是一名优秀的程序员,十分优秀!