首页 > 解决方案 > Connect(EquipmentMetadata) 中的 mapStateToProps() 必须返回一个普通对象。而是收到未定义的

问题描述

运行代码时出现以下错误,并且不确定从哪里开始调试。

Connect(EquipmentMetadata) 中的 mapStateToProps() 必须返回一个普通对象。而是收到未定义的。警告:失败的道具类型:道具名称在设备元数据中标记为必填,但其值未定义。

这是索引文件:

import 'babel-polyfill'
import React from 'react'
import { render } from 'react-dom'
// import Root from './containers/Root'
import { setName } from './actions'
// import createStore from './common/store/'
import { Provider } from 'react-redux'
import EquipmentMetadata from './containers/EquipmentMetadata'
// import ReduxPiece from './components/ReduxPiece'
import configureStore from './configureStore'

const store = configureStore()

window.EquipmentMetadata = {
    store,
    setName
}

render(
        <Provider store={store}>
        {/* <Root /> */}
        <EquipmentMetadata />
        </Provider>,
    document.getElementById('equipment-metadata')
)

设备元数据.js:

import React, { Component } from 'react'
import PropTypes from 'prop-types'
import { connect } from 'react-redux'
import Greeting from '../components/Greeting'
// import ReduxPiece from "../components/ReduxPiece";

class EquipmentMetadata extends Component {
  render () {
    // const { name } = this.props

    return (
      <div>
      <Greeting 
        // name={name}
       />
     {/* <ReduxPiece /> */}
     </div>  
    )
  }
}

EquipmentMetadata.propTypes = {
  name: PropTypes.string.isRequired
}

function mapStateToProps (state) {
  // const { name } = state
  // return {
  //   name
  // }
}

function mapDispatchToProps (dispatch) {
  return {}
}

export default connect(
  mapStateToProps,
  mapDispatchToProps
)(EquipmentMetadata)

标签: reactjsreact-redux

解决方案


它告诉你mapStateToProps应该返回一些东西——你已经完全评论了所有的东西。如果您不希望它返回任何内容,那么只需让它返回 {}。此外,在评论它时,你说它EquipmentMetadata需要一个name 道具,你现在没有发送它。propTypes


推荐阅读