Не получает реквизит от дочернего компонента в Redux - PullRequest
1 голос
/ 29 января 2020

Я хочу получить реквизит от Redux в дочернем компоненте. Но {this.props} - пустой объект. Я использую React-Redux Connect, чтобы получить реквизит. Он работает в родительском компоненте, и мы можем перейти к дочернему компоненту, чтобы получить реквизит, но мне нужно получить от дочернего компонента

Логин

```import React, { Component } from 'react'
import { Test } from './Test'

export default class Login extends Component {
    render() {
        return (
            <div>
                <Test hi=""/>
            </div>
        )
    }
}```

Тест

import React, { Component } from 'react'
import { connect } from 'react-redux'

export class Test extends Component {
    render() {
        console.log(this.props)
        return (
            <div>
                vddfff
            </div>
        )
    }
}

const mapStateToProps = (state) => ({

})

const mapDispatchToProps = (dispatch) => {
    return {
        selectedData: (val) => {
            console.log("object")
        }
    }
}
export default connect(mapStateToProps, mapDispatchToProps)(Test)

Ответы [ 2 ]

0 голосов
/ 29 января 2020

Проблема здесь в том, что вы пытаетесь использовать написанный вами тестовый компонент вместо компонента высшего порядка, который возвращается connect() из react-redux. Вам не нужно экспортировать класс Test.

В логине. js файл, используйте

import Test from './Test'

вместо

import {Test} from './Test'

Смотрите его в действие здесь. https://codesandbox.io/s/sample-test-app-q5srf

0 голосов
/ 29 января 2020

Вы использовали не тот компонент. При входе в систему вам необходимо импортировать:

import Test from './Test'

Вы импортировали тест, который не подключен к redux (который выдвигает реквизиты redux).

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