2016-07-27 12 views
9

Pakiety reagujące na natywną platformę mają natywny kod Android, natywny kod iOS i kod javascript, który łączy je ze światem javascript.Czy natywne części pakietu o natywnym reagowaniu mogą być uruchamiane i rozwijane samodzielnie?

Przypuszczalnie podczas pracy nad natywnymi częściami takiego pakietu, importowałbyś je do odpowiednich IDE (android-studio i Xcode) i rozwijał interfejs w IDE.

Kiedy patrzę na pakiety typu native-native reagujące jako całość lub importuję natywne porcje do ich odpowiednich IDE, wspomniane natywne części nie wydają się działać samodzielnie ... przynajmniej nie jako samodzielna aplikacja dla systemu Android lub ios.

Moje pytanie brzmi: jak można używać natywnych IDE do importowania/kompilowania/uruchamiania/debugowania natywnej części pakietu natywnego? Czy na ogół nadal potrzebujesz serwera reagującego na natywny serwer i odpoczywającego kodu mostkowego javscript?

Szczególny pakiet, który próbuję zmodyfikować natywną częścią, to react-native-datetime. Mam nadzieję, że będę mógł zaimportować porcję android do android-studio i dowiedzieć się, jak uruchomić i zmodyfikować jednego z pickerów.

Odpowiedz

2

Jeśli utworzysz statyczny pakiet plików js do użytku w swojej aplikacji, będziesz mógł uruchomić aplikację bez konieczności utrzymywania serwera js. Wtedy powinieneś być w stanie pracować na natywnym kodzie z twoim edytorem/IDE przy użyciu folderu android w twoim katalogu projektu (dla Androida).

Aby utworzyć offline pakiet dla Androida:

react-native bundle --platform android --dev false --entry-file index.android.js \ --bundle-output android/app/src/main/assets/index.android.bundle \ --assets-dest android/app/src/main/res/

ta powinna utworzyć statyczny pakiet index.android.bundle dla kodu javascript pod android/app/src/main/assets/

Prostszym sposobem byłoby zrobić

curl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle" 

z katalogu budowania.

4

React Natywne projekty mają na swoim folderze głównym dwa inne katalogi: android i ios, które mają Androida (można go otworzyć w Android Studio, jak każdy inny projekt Android) i XCode iOS projektów.

Powiedziałbym, że pakiet pakujący musi być otwarty, aby aplikacja mogła pobrać pliki JS. Próbowałem tylko zamknąć i uruchomić aplikację na XCode sam, i to otworzyło pakowacz wcześniej w oknie terminala.

Moja sugestia: utwórz pusty projekt, zaimportuj pakiet react-native-datetime, użyj go na ekranie głównym i graj z nim natywnie za pomocą Studio Android lub XCode, jeśli jest to opcja.

+0

Dlaczego warto utworzyć pusty projekt? czy foldery androida i ios w pakiecie datetime nie powinny już być projektami Android Studio i XCode? ... także jeśli importuję ten konkretny pakiet, nie wydaje się on budować, ponieważ nie ma zadeklarowanej zależnej od reaktywności zależności (nie jestem pewien czy tak powinien wyglądać pakiet?) ... w końcu, jeśli dodam go jako zależność i jestem w stanie go zbudować, to nie wydaje się, że jest to aplikacja działająca (ani ja, ani ja nie wiem jak uruchomić kawałek Kod interfejsu użytkownika bez umieszczania go w aplikacji) – funkyeah

+1

@funkyeah, Łączymy kod natywny z katalogu 'node_modules'. Więc możesz po prostu zmodyfikować kod stamtąd, a następnie przekompilować. Jeśli szukasz łatwego sposobu na przeglądanie komponentów, sprawdź [React-native-storybook] (https: // github.com/kadirahq/react-native-storybook) –

+0

Szukam uruchomić tylko część natywną, więc wydaje mi się, że node_modules nie byłoby odpowiednie ... np. w przykładowym pakiecie datetime, o którym wspomniałem, chciałbym tylko renderować timepicker – funkyeah

Powiązane problemy