как набрать ответ-редукс подключиться в потоке? - PullRequest
0 голосов
/ 20 ноября 2018

Вот как выглядит мой mapStateToProps.

const mapStateToProps = (state): StateProps => {
    let status = false;
    if (state.productsPage.currentProduct) {
        if (state.productsPage.currentProduct.status === "ACTIVE") {
            status = true;
        }
    }
    return {
        showModal: state.productsPage.showModal,
        currentProduct: state.productsPage.currentProduct,
        isLoading: state.status.loading.PRODUCTS_EDIT,
        initialValues: {
            name: state.productsPage.currentProduct ? state.productsPage.currentProduct.name : "",
            status,
        },
    };
};

Вот форма StateProps

type StateProps = {
    showModal: boolean,
    currentProduct: Object,
    isLoading: boolean,
    initialValues: {
        name: string,
        status: boolean,
    }
}

Это мой способ подключения.

const connected = connect<React$StatelessFunctionalComponent<any>, StateProps>(mapStateToProps, mapDispatchToProps);

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

[поток] Невозможно вызвать connect, так как свойство currentProductотсутствует в React.StatelessFunctionalComponent [1] в ключе свойства indexer типа аргумент ST.(Список литературы: [1])

Ответы [ 2 ]

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

Рекомендуется обновить Flow по крайней мере до 0,89 и использовать новейшее определение библиотеки React Redux Flow Typed .

Затем вы можете аннотировать подключенные компоненты с помощью Propsи OwnProps

import * as React from 'react'

type OwnProps = {|
  passthrough: string,
  forMapStateToProps: string
|}

type Props = {|
  ...OwnProps,
  fromMapStateToProps: string,
  dispatch1: () => void
|}

const MyComponent = (props: Props) => (
  <div onClick={props.dispatch1}>
    {props.passthrough}
    {props.fromMapStateToProps}
  </div>
)

export default connect<Props, OwnProps, _, _, _, _>(
  mapStateToProps,
  mapDispatchToProps
)(MyComponent)

Здесь - более подробное руководство, включающее еще пару вариантов использования.

0 голосов
/ 20 ноября 2018

React$StatelessFunctionalComponent является универсальным, который ожидает типы проп.Вместо <any> вы хотели бы получить реквизиты, которые эта функция ожидает получить - самое главное, она ожидает получить ваш StateProps, возвращаемый mapStateToProps (хотя он может ожидать и другие в дополнение).

Это может измениться в зависимости от версии react-redux, но я вижу некоторую документацию, которая предполагает, что обобщенные значения для connect являются возвращаемым значением mapStateToProps, а не элементом React.- Источник

Возможно, вам потребуется connect<StateProps, DispatchPropsIfAny> вместо предоставления типа элемента.

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