Я пытаюсь использовать эту библиотеку 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, или происходит что-то еще, о чем я не знаю.
черт возьми, хорошо, спасибо за ответ!
это действительно простая библиотека, поэтому вы, вероятно, могли бы довольно легко заменить ее на собственный Picker
@RobbieMilejczak Я не уверен, как это сделать, я не понимаю, как вы смогли определить, что option и select использовались под капотом.





Это не сработает, потому что эта библиотека отображает 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, если ни одно из этих ключевых слов не находится в примере кода?
Вы должны использовать исходный код модулей, посмотрите файлы в каталоге node_modules/react-country-region-selector/src, и вы поймете, что я имею в виду
эта библиотека использует
optionиselectпод капотом, которые недоступны в react-native