- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题:
我无法显示 redux 状态的值,该值是由 mapStateToProps
函数传递给组件的。
项目结构:
Create-react-app CLi 应用程序构建了项目。在 src/内部我有以下代码结构
必要的代码:我们正在交互的主页如下所示:
下面计划发布点击按钮的结果。
那么如何将 redux 状态和操作绑定(bind)到这两个组件:Calculator 和 ResultLine?
让我展示一下我在其中创建商店的 index.js 代码:
import React from "react";
import ReactDOM from "react-dom";
import { Provider } from "react-redux";
import { createStore } from "redux";
import reducers from './reducers/';
import App from './components/App';
ReactDOM.render(
<Provider store={createStore(reducers)}>
<App />
</Provider>,
document.getElementById("root")
);
只有三个操作:
import {CALCULATE, ERASE, PUT_SYMBOL} from "./types";
export const putSymbol = (symbol) => {
return {
type: PUT_SYMBOL,
payload: symbol
}
};
export const calculate = () => {
return {
type: CALCULATE
}
};
export const erase = () => {
return {
type: ERASE
}
};
在 App.js 中,我传递了 reducer ,它们将这些操作绑定(bind)到计算器组件:
import React, {Component} from 'react';
import Calculator from './Calculator';
import ResultLine from "./ResultLine";
import {calculate, erase, putSymbol} from "../actions/index";
import {connect} from "react-redux";
class App extends Component {
render() {
return (
<div>
<Calculator
onSymbolClick={this.props.onSymbolClick}
onEqualsClick={this.props.onEqualsClick}
onEraseClick={this.props.onEraseClick}/>
<br/>
<ResultLine result={this.props.result}/>
</div>
);
}
}
const mapStateToProps = (state) => {
console.log('mapState', state.calc.line);
return {
result: state.line
}
};
const mapDispatchToProps = {
onSymbolClick: putSymbol,
onEqualsClick: calculate,
onEraseClick: erase
};
export default connect(mapStateToProps, mapDispatchToProps)(App);
效果很好。每当我单击按钮时,状态就会发生变化,并且我会在控制台日志中观察到它,并在 mapStateToProps 函数中调用。
所以我希望我可以轻松地将 result 属性传递到 Result 行,并将其作为参数传递到 ResultLine
组件中。那么,让我们看看这个元素:
import React from 'react';
const ResultLine = ({result}) => {
return (
<p>{result}</p>
);
};
export default ResultLine;
我在结果行中看不到任何变化。也许,React/Redux 生命周期管理和 ResultLine 组件出了问题,只是没有根据状态变化进行更新?
最佳答案
mapStateToProps
出现错误。
而不是:
const mapStateToProps = (state) => {
return {
result: state.line
}
}
请使用:
const mapStateToProps = (state) => {
return {
result: state.calc.line // calc was missing here
}
}
关于javascript - 从 props 打印值,该值通过 mapStateToProps 从 redux 传递到组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46377102/
我正在尝试使用 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
我是一名优秀的程序员,十分优秀!