javascript - 使用 redux store 时返回 undefined 的道具
问题描述
我已经开始学习 react-redux 并且正在尝试相同的方法,但不知何故,道具在映射后以未定义的形式返回。分享代码流程:
下面是详细的代码,简要介绍了所使用的每个组件。
应用程序.js:
import './App.css';
import CakeContainer from './redux/cakes/CakeContainer';
import React from 'react';
import { Provider } from 'react-redux';
import store from './redux/store';
function App() {
console.log(store.getState())
return (
<Provider store = {store}>
<div className="App">
<CakeContainer/>
</div>
</Provider>
);
}
export default App;
CakeContainer.js
import React from 'react'
import { connect } from 'react-redux'
import { buyCake } from './CakeAction'
function CakeContainer(props) {
return (
<div>
<h1>Cake Container !!</h1>
<h2>Number of cakes - {props.cake}</h2>
<button onClick = {props.buyCake}> buy cakes</button>
</div>
)
}
const mapStateToProps = (state) =>{
return {
cake: state.cakeQuant
}
}
const mapDispatchToProps = dispatch => {
return {
buyCake: () => dispatch(buyCake())
}
}
export default connect(mapStateToProps, mapDispatchToProps)(CakeContainer)
动作.js
import {BUY_CAKE} from './CakeTypes'
export const buyCake = () =>{
return{
type: 'BUY_CAKE'
}
}
Reducer:Reducer,我在其中传递初始状态和操作以进行进一步处理。
从“./CakeTypes”导入 { BUY_CAKE };
const initialState = {
cakeQunt : 10
}
const CakeReducer = (state = initialState, action)=>{
switch(action.type){
case 'BUY_CAKE': return {
...state,
cakeQunt: state.cakeQunt - 1
}
default: return state;
}
}
export default CakeReducer;
Store.js 创建 store 并将 reducer 详细信息传递给它
[![import { createStore } from "redux";
import CakeReducer from './cakes/CakeReducer'
const store = createStore(CakeReducer,window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__())
console.log(store.getState())
export default store;][1]][1]
显示道具值未定义的图像:[1]:https ://i.stack.imgur.com/EjXU1.png
解决方案
推荐阅读
- arrays - Julia,根据概率执行替换
- java - 如何实现 Unity 风格的 GetComponent
JavaFX 中的 () 函数? - inno-setup - 在 Inno Setup 脚本中将一个很长的字符串参数拆分为多行
- r - 使用 ifelse 基于日期范围的新字符值
- angular - @ViewChild 返回未定义。我无法访问模式内的轮播 ElementRef
- bash - 在 makefile 中默认环境变量
- google-app-engine - 如何找到两年前部署的谷歌应用引擎源代码
- node.js - ECONNRESET(Nodejs net.Socket)后重新连接到套接字的正确方法
- ravendb - System.NotSupportedException:“使用集群事务时不支持‘Taxes/353-A’的乐观并发。” 在 RavenDB 中
- spring - 不能使用 postgres jsonb 运算符?| 使用弹簧 jpa