Javascript mapStateToProps始终在Redux中返回未定义,尽管已初始化
我试图从reducer(footerreducer.js)返回mapStatetoProps(FooterLink.js)中未定义的状态 我现在只在mapStatetoProp func中得到未定义的 如何从减速机返回“返回A” FooterFirst.js是用于连接减速器的组件 (这也有问题,但我不认为它会导致未定义状态。也许…) index.js是actioncreator FooterLink.jsJavascript mapStateToProps始终在Redux中返回未定义,尽管已初始化,javascript,reactjs,redux,Javascript,Reactjs,Redux,我试图从reducer(footerreducer.js)返回mapStatetoProps(FooterLink.js)中未定义的状态 我现在只在mapStatetoProp func中得到未定义的 如何从减速机返回“返回A” FooterFirst.js是用于连接减速器的组件 (这也有问题,但我不认为它会导致未定义状态。也许…) index.js是actioncreator FooterLink.js import {connect} from "react-redux" i
import {connect} from "react-redux"
import {changeWindow} from "../actions"
import {undefinedText} from "../actions"
import FooterFirst from "../components/FooterFirst"
const mapStateToProps =(state,ownProps)=>{
return {
text:state.text
}
}
const mapDispatchToProps = (dispatch,ownProps)=>{
if (ownProps.text === `undefined`){
return{
onClick:()=>{dispatch(undefinedText(ownProps.text))}
}
}
return{
onClick:()=>{dispatch(changeWindow(ownProps.text))}
}
}
const FooterLink = connect(
mapStateToProps,
mapDispatchToProps
)(FooterFirst)
export default FooterLink
footerreducer.js
const footerreducer = (state,action) =>{
if (typeof state=== 'undefined') {
return Object.assign({},state,{
text:"A"
})
}
switch (action.type){
case `A`:
return Object.assign({}, state, {
text:`returned A`
})
case `B`:
return {
text:`retruned B`
}
case `C`:
return {
text:`returned C`
}
default:
return state
}
}
export default footerreducer
FooterFirst.js
import React ,{PropTypes} from "react"
let x = 0
const FooterFirst = ({text,onClick})=>{
if(!text){
x = x + 1
console.log(x)
return <a text={text} onClick={e=>{e.preventDefault()
onClick()
}}>
AAAA{text}
</a>
}
return (
<a text={text} onClick={e=>{e.preventDefault()
onClick()
}}>
iefefer
</a>
)
}
FooterFirst.PropTypes ={
text:PropTypes.string.isRequired,
onClick:PropTypes.func.isRequired
}
export default FooterFirst
你需要将footerreducer导入FooterLink。你需要将footerreducer导入FooterLink。你能在这里复制吗:你能在这里复制吗:终于成功了!我不是将FooterDucer而是将rootreducer导入FooterLink。但它为什么起作用还有待解决…最终它起作用了!我不是将FooterDucer而是将rootreducer导入FooterLink。但它为什么起作用还有待解决。。。
export const changeWindow = (text_Now)=>{
return {
type:`A`,
text:text_Now
}
}
export const undefinedText = (text_Now)=>{
return {
type:`Notext`,
text:text_Now
}
}