экспорт синтаксиса оболочки высшего компонента неверен? - PullRequest
0 голосов
/ 28 мая 2018
import asyncComponent from './asyncComponent'

const AsyncButton = asyncComponent(() => import('./Buttons'))
    export { ButtonPrimary } = AsyncButton

Почему указанный выше код недействителен?Button компонент - обычный компонент.

Я делаю это export { ButtonPrimary } from './Buttons' все в порядке.

Mt asyncComponent code

import React, { Component } from 'react'

    const asyncComponent = importComponent => {
      class AsyncComponent extends Component {
        state = {
          component: null
        }

        async componentDidMount() {
          const { default: component } = await importComponent()

          this.setState({
            component: component
          })
        }

        render() {
          const C = this.state.component

          return C ? <C {...this.props} /> : null
        }
      }

      return AsyncComponent
    }

    export default asyncComponent

Ответы [ 2 ]

0 голосов
/ 28 мая 2018
Синтаксис

export { ButtonPrimary } = AsyncButton недопустим, поскольку export поддерживает ограниченный набор вариантов синтаксиса .Он не выполняет деструктуризацию, также свойство ButtonPrimary не AsyncButton.

Если ButtonPrimary равно Buttons экспорт модуля:

export { ButtonPrimary } from './Buttons';

Тогда должно быть:

const AsyncButton = asyncComponent(async () => (await import('./Buttons')).ButtonPrimary);
export { AsyncButton as ButtonPrimary };
0 голосов
/ 28 мая 2018

Похоже,

const AsyncButton = asyncComponent(() => import('./Buttons'))
export { ButtonPrimary } = AsyncButton

должно быть

export const ButtonPrimary = asyncComponent(() => import('./Buttons'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...