it-swarm.com.ru

Создание компонентов Div и Span в React Native

Я видел на различных форумах заявления о том, что использование "View" в React Native - это квазиэквивалент использования "div" в React.

Хотя я понимаю причину для компонента View (кто хочет поддерживать все опции 'div'?), Кажется, что компонент, который может обрабатывать большинство разумных атрибутов 'div' и 'span', мог бы быть сделан так, чтобы переносить React to React native не такая утомительная работа.

У кого-нибудь есть такие компоненты, которые они протестировали и могут поделиться? Кажется, что все вопросы о поддержке стилей, событиях отображения и дочерних элементах отображения повторяются почти для всех, кто входит в React Native.

Что-то вроде

class Div extends Component {  //or Class Span extends Component

  static propTypes = {
    style : PropTypes.obj
    onClick : PropTypes.func   // ...
  }

  render (){
    return (
      <View>
      {
        /* whatever is needed to pass everything through  ... */
      }
      </View>
  }
}
5
Lost In Space

Я думаю, что вы упускаете суть React Native. Предполагается, что компоненты будут отображаться на собственные компоненты пользовательского интерфейса мобильной платформы. Это не то, что берет HTML и каким-то образом превращает его в нечто, похожее на мобильное приложение. Вот почему он называется «Native» - потому что он на самом деле использует пользовательский интерфейс платформы. Если вы хотите использовать обычные элементы HTML для создания мобильного приложения, то почему бы вам просто не использовать такие фреймворки, как Cordova/Ionic и т.д.?

React теперь похож на идиому, которая позволяет создавать пользовательский интерфейс независимо от устройства. React Native просто использует эту идиому React и знает, как ее отобразить на экране мобильного телефона. Так что нет такой вещи, как «портирование React на React Native».

Если вы хотите поэкспериментировать, да, вы можете создать собственный компонент Div и собственный компонент Span - это ваше дело. Вы можете просто передать реквизит из этого компонента вниз в представление или текст. Но я думаю, что это было бы излишним. Обычно вы создаете свои собственные компоненты, а за кулисами используете View и Text, TextInput и т.д. - все основные компоненты React Native.

4
nbkhope

Хотя я полностью согласен с ответом @nbkhope, я вижу, что ответ, который ищет @LostInSpace, - это замена замены HTML <div>

Похоже, это такая вещь: https://www.npmjs.com/package/react-native-div

2
Kris Randall