mapStateToProps () в Connect (EquipmentMetadata) должна возвращать простой объект.Вместо этого получил неопределенный - PullRequest
0 голосов
/ 27 августа 2018

Я получаю следующие ошибки при запуске моего кода и не уверен, с чего начать с отладки этого.

mapStateToProps() in Connect(EquipmentMetadata) must return a plain object. Instead received undefined.
Warning: Failed prop type: The prop name is marked as required in EquipmentMetadata, but its value is undefined.

Это индексный файл:

<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
<div class="snippet-code">
<pre class="snippet-code-js lang-js prettyprint-override"><code>    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')
    )
import 'babel-polyfill' import React from 'реагировать' import {render} из'act-dom '// импортировать Root из' ./containers/Root 'import {setName} из' ./actions '// импортировать createStore from'./common/store/' import {Provider} из'act-redux 'import EquipmentMetadata из' ./containers/EquipmentMetadata '// импортировать ReduxPiece из' ./components/ReduxPiece 'импортировать configureStore из "./configureStore" const store= configureStore () window.EquipmentMetadata = {store, setName} render ({/ ** /}, document.getElementById ('equipment-metadata')) equipmentmetadata.js import React, {Component} из 'response', импорт PropTypes из 'prop-types', импорт {connect} из'act-redux ', импорт Приветствие из'../components/Greeting '// импортировать ReduxPiece из "../components/ReduxPiece";class EquipmentMetadata extends Component {render () {// const {name} = this.props return (
{/ ** /}
)}} EquipmentMetadata.propTypes = {name: PropTypes.string.isRequired} функция mapStateToProps (state) {// const {name} = state // вернуть {// name //}} функция mapDispatchToProps (отправка) {return {}} экспортировать соединение по умолчанию (mapStateToProps, mapDispatchToProps) (EquipmentMetadata)

Ответы [ 2 ]

0 голосов
/ 26 июня 2019

mapStateToProps должна быть функцией, которая возвращает объект.Обозначение функции mapStateToProps может быть таким, как приведено ниже.

//ES5
function mapStateToProps (state) {
  return {
    key: name of the reducer function
  }
}

//ES6
const mapStateToProps = (state) => ({
    key: name of the reducer function
})

Для своего кода вы можете попробовать внести такие изменения, как

function mapStateToProps (state) {
  return {
    name: state.nameOfReducer.valueinReducer
  }
}
0 голосов
/ 27 августа 2018

Он говорит вам, что mapStateToProps должен что-то возвращать - вы все это прокомментировали полностью.Если вы не хотите, чтобы он что-либо возвращал, просто заставьте его вернуть {}.Также, комментируя это, ваши EquipmentMetadata в своих propTypes говорит, что для требуется псевдоним, который вы сейчас не отправляете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...