2017-01-26 2 views
0

Ich arbeite an einem nativen Modul, das eine "Ansicht" akzeptiert (die Ansicht in der Viewregistry von ihrem reactTag/nodehandle zu finden). Das alles funktioniert gut, wenn ich die Ansicht in der Funktion machen sind und die Suche nach der reactTag/nodehandle in der ref Rückruf wie folgt:react-native create instance ohne es zu rendern

render(){ 
return (<View ref={(ref)=>MyNativeModule.test(findeNodeHandle(ref))}><Text>foobar</Text></View>) 
} 

, die perfekt funktioniert und ich kann durch Nachschlagen in den Tag ich die native Ansicht finden passieren als Argument für meine Module Testfunktion.

Meine Frage ist: Wie kann ich eine Ansicht instanziieren (Erstellen und Erhalten eines gültigen Nodehandle?), Ohne es zu rendern?

Hoffe ihr könnt mir helfen.

/Mikkel

+0

Ich glaube nicht, Sie können. Die native Hintergrundansicht ist nur vorhanden, wenn die Ansicht tatsächlich gerendert und bereitgestellt wird. Was versuchst du eigentlich zu erreichen? Können Sie vielleicht umgehen, indem Sie das Element außerhalb des Bildschirms darstellen (z. B. mit position: absolute)? – jevakallio

+0

mein natives Modul setzt die EingabeAccessoryView eines Textinput. Ich muss diese Ansicht erstellen, ohne sie zu rendern. Ich kann eine Ansicht erstellen, indem ich UIManager.createView verwende, aber ich weiß nicht, wie ich eine Ansicht zu dieser Ansicht hinzufügen kann. –

Antwort

0

ich es gelöst, indem sie meine Mutter Modul eine RCTRootView erstellen und brachte die reactTag Javascript zurück und rufen Sie dann

ReactNative.render(<Text>MY TEXT</Text>, reactTag)