React Native Typescript Template не работает

Я создал новый проект React Native с шаблоном машинописного текста, используя официальную команду react-native init MyApp --template typescript (пару раз), и я не вижу изменений, которые я применяю при запуске приложения. Похоже, что горячая перезагрузка работает с точки зрения обновления экрана, но не применяет изменения. В случае, если я создаю приложение без машинописного текста, все работает правильно.

Я не получаю никаких ошибок, поэтому я понятия не имею, что я могу сделать. Ниже находится package.json на случай, если это поможет, но в основном это автоматически сгенерированный файл из typescript template.

{
  "name": "MyApp",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "react": "16.6.3",
    "react-native": "0.58.4"
  },
  "devDependencies": {
    "@types/jest": "^24.0.0",
    "@types/react": "^16.8.2",
    "@types/react-native": "^0.57.34",
    "@types/react-test-renderer": "^16.8.0",
    "babel-core": "7.0.0-bridge.0",
    "babel-jest": "24.1.0",
    "jest": "24.1.0",
    "metro-react-native-babel-preset": "0.51.1",
    "react-test-renderer": "16.6.3",
    "ts-jest": "^23.10.5",
    "typescript": "^3.3.3"
  },
  "jest": {
    "preset": "react-native"
  }
}

tsconfig.json

{
  "compilerOptions": {
    "allowJs": true,
    "allowSyntheticDefaultImports": true,
    "esModuleInterop": true,
    "isolatedModules": true,
    "jsx": "react",
    "lib": ["es6"],
    "moduleResolution": "node",
    "noEmit": true,
    "strict": true,
    "target": "esnext"
  },
  "exclude": ["node_modules", "babel.config.js"]
}

Любая идея, как я могу заставить реагировать на работу с машинописным текстом. Спасибо!

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
0
2 538
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я нашел решение, и в основном, когда вы создаете приложение реагировать нативноe, используя шаблон машинописного текста в ./ вашего проекта, появляются 2 файла с именем App (App.js и App.tsx), поэтому в основном решение для того, чтобы эта работа заработала, идет к index.js и заменить

import App from './App'; per import App from './App.tsx';

index.js

import {AppRegistry} from 'react-native';
import App from './App.tsx';
import {name as appName} from './app.json';

AppRegistry.registerComponent(appName, () => App);

Также вы можете решить проблему, удалив файл .js, чтобы индекс указывал на файл .тс.

Похоже, вы не выполнили сценарий установки после установки, который удаляет файл App.js. В любом случае, в этом больше нет необходимости, поскольку с выпуском React Native 0.59 сценарий установки после установки выполняется автоматически.

Другие вопросы по теме