Как унаследовать компонент опции vanilla в компоненте пользовательской опции вact-select v2? - PullRequest
0 голосов
/ 15 мая 2019

Я хочу добавить некоторые пользовательские опции, но продолжаю использовать нативный компонент внутри.

Идея состоит в том, чтобы просто наследовать, специализировать, без полного переписывания рендеринга.

С V1 этот код хорошо работал, для моего компонента пользовательской опции:

import React from 'react';
import components from "react-select";
class MyCustomOption extends React.Component {
    constructor(props)
    {
        super(props);
    }
    render()
    {
        return <div title={this.props.title}><components.Option {...this.props} /></div> }
    }
}

с v2 я не могу заставить этот код работать: у меня есть следующая ошибка при рендеринге пользовательской опции :

Предупреждение: React.createElement: тип недопустим - ожидается строка (для встроенных компонентов) или класс / функция (для составных компонентов), но получено: undefined. Скорее всего, вы забыли экспортировать компонент из файла, в котором он определен, или вы смешали импорт по умолчанию и имя.

Ответы [ 2 ]

2 голосов
/ 15 мая 2019

В react-select импорт components необходимо выполнить следующим образом:

import { components } from "react-select";

Надеюсь, это поможет.

0 голосов
/ 16 мая 2019

Благодаря Лоре.Вот исправленный код:

import React from 'react';
import {components} from "react-select";
class MyCustomOption extends React.Component {
    constructor(props)
    {
        super(props);
    }
    render()
    {
        return <div title={this.props.data.title}><components.Option {...this.props} /></div> }
    }
}
...