Неизменное нарушение: конфигурация просмотра не найдена для параметра имени (React Native)

Я пытаюсь использовать эту библиотеку https://github.com/country-regions/react-country-region-selector для моего собственного приложения реакции.

Пример кода выглядит следующим образом:

import React from "react";
import { View, Text } from 'react-native';

// note that you can also export the source data via CountryRegionData. It's in a deliberately concise format to
// keep file size down
import {
  CountryDropdown,
  RegionDropdown,
  CountryRegionData
} from "react-country-region-selector";

class Example extends React.Component {
  constructor(props) {
    super(props);
    this.state = { country: "", region: "" };
  }

  selectCountry(val) {
    this.setState({ country: val });
  }

  selectRegion(val) {
    this.setState({ region: val });
  }

  render() {
    const { country, region } = this.state;
    return (
      <View>
        <CountryDropdown
          value = {country}
          onChange = {val => this.selectCountry(val)}
        />
        <RegionDropdown
          country = {country}
          value = {region}
          onChange = {val => this.selectRegion(val)}
        />
      </View>
    );
  }
}

export default Example;

Я изменил divs в методе рендеринга на View, что оставило меня с текущей ошибкой: Неизменяемое нарушение: не найдена конфигурация просмотра для параметра имени.

Я не уверен, что это потому, что библиотека предназначена для React, а не для React-Native, или происходит что-то еще, о чем я не знаю.

эта библиотека использует option и select под капотом, которые недоступны в react-native

Robbie Milejczak 30.10.2018 19:19

черт возьми, хорошо, спасибо за ответ!

Brayheart 30.10.2018 19:28

это действительно простая библиотека, поэтому вы, вероятно, могли бы довольно легко заменить ее на собственный Picker

Robbie Milejczak 30.10.2018 19:29

@RobbieMilejczak Я не уверен, как это сделать, я не понимаю, как вы смогли определить, что option и select использовались под капотом.

Brayheart 30.10.2018 19:34
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
4
963
1

Ответы 1

Это не сработает, потому что эта библиотека отображает HTML, который недоступен в react-native. Вы можете подтвердить это, перейдя на node_modules/react-country-region-selector/src, чтобы увидеть исходный код.

Однако компонент Picker в react-native имеет очень похожий API, поэтому вы можете легко переделать его для совместимости. Обратите внимание, что вам не следует редактировать файлы на вашем node_modules, так как они будут исправляться каждый раз, когда вы запускаете yarn / npm. Вместо этого вы должны создать свою собственную локальную версию этого модуля.

На самом деле это просто вопрос замены select на Picker и option на Picker.Item и изменение обработчиков onChange для работы с Picker вместо ожидания события DOM.

Вы можете узнать больше о Picker API здесь

Я ценю ваш комментарий, я не понимаю, как заменить select и option, если ни одно из этих ключевых слов не находится в примере кода?

Brayheart 30.10.2018 19:50

Вы должны использовать исходный код модулей, посмотрите файлы в каталоге node_modules/react-country-region-selector/src, и вы поймете, что я имею в виду

Robbie Milejczak 30.10.2018 19:52

Другие вопросы по теме