2017-08-18 1 views
1

Ich habe in verschiedenen Foren behauptet, dass die Verwendung von "View" in React Native ist quasi gleichbedeutend mit einem 'Div' in React.Erstellen von 'Div' und 'Span' Komponenten in React Native

Während ich die Argumentation für die View-Komponente verstehe (wer alle "div" -Optionen unterstützen will?) Scheint es, dass eine Komponente erstellt werden kann, die die meisten vernünftigen "div" - und "span" -Attribute verarbeiten kann so dass Portierung Reagieren auf Reagieren nativ ist keine so mühsame Aufgabe.

Hat jemand solche Komponenten, die sie getestet haben und teilen können? Alle Probleme bezüglich Stilunterstützung, Mapping-Ereignis und Mapping-Kindern scheinen sich zu wiederholen, da fast jeder in React Native springt.

So etwas wie

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> 
    } 
} 

Antwort

3

Ich glaube, Sie fehlen den Punkt Mutter von React. Es soll Komponenten enthalten, die den nativen UI-Komponenten der mobilen Plattform zugeordnet werden. Es soll nicht etwas sein, das HTML aufnimmt und irgendwie in etwas umwandelt, das wie eine mobile App aussieht. Deshalb heißt es "Native" - ​​weil es die Benutzeroberfläche von der Plattform verwendet. Wenn Sie möchten, dass Sie für eine mobile App häufig verwendete HTML-Elemente verwenden, dann bleiben Sie einfach bei Frameworks wie Cordova/Ionic usw.?

React ist jetzt wie ein Idiom, mit dem Sie eine Benutzeroberfläche unabhängig vom Gerät erstellen können. React Native übernimmt lediglich das Reaction "idiom" und weiß, wie man es auf dem mobilen Bildschirm rendert. Es gibt also keine "Portierung von Reaktion auf native Reaktion".

Wenn Sie experimentieren möchten, können Sie eine benutzerdefinierte Div-Komponente und eine benutzerdefinierte Span-Komponente erstellen - das bleibt Ihnen überlassen. Sie können die Requisiten nur von dieser Komponente herunter zu einer Ansicht oder einem Text weiterleiten. Aber ich denke, das wäre überflüssig. Normalerweise würden Sie Ihre eigenen Komponenten erstellen und hinter den Kulissen würden Sie View und Text und TextInput usw. verwenden - all die grundlegenden Komponenten von React Native.

+1

Oder jemand könnte mir helfen, eine Komponente zu definieren, die mein Problem löst. Ich interessiere mich nicht für die philosophischen Grundlagen von Reactive Native und warum es so wunderbar ist. Ich möchte nur mein spezifisches Portierungsproblem lösen. Wenn nach der Portierung die Benutzererfahrung nicht richtig ist, dann habe ich eine funktionierende Codebasis zum Modifizieren. –

+0

div und span sind nackte Knochen dom Elemente. Was ich versuche, ist herauszufinden, welche Standardeinstellungen ich hinzufügen/entfernen muss, um sie wie diese generischen Container zu verhalten oder etwas, das nahe genug ist, um einen funktionierenden Prototyp zur Verbesserung bereitzustellen. Dies ist keine domspezifische Anforderung, obwohl es so aussieht, als ob es eine Zuordnung von leeren Container-Standardeinstellungen zu neuen Container-Standardanforderungen wäre. –

Verwandte Themen