Javascript mapStateToProps始终在Redux中返回未定义,尽管已初始化

Javascript 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

我试图从reducer(footerreducer.js)返回mapStatetoProps(FooterLink.js)中未定义的状态

我现在只在mapStatetoProp func中得到未定义的

如何从减速机返回“返回A”

FooterFirst.js是用于连接减速器的组件

(这也有问题,但我不认为它会导致未定义状态。也许…)

index.js是actioncreator

FooterLink.js

    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
  }
}