Нет связи Реактотрон / Реакция-нативный - PullRequest
0 голосов
/ 17 сентября 2018

Я пытаюсь отладить приложение с помощью Reactotron в проекте (IOS) React Native, но при запуске приложения появляется сообщение «Нет активности».

Я работаю с реактивным родным 0.55.4, реактотроном 2.1.0 (то же самое в моем package.json)

Временная шкала Reactotron

Мой реагиртронConfig.js

индексФайл .js, куда импортируется реактотрон

реактотрон в моем пакете. json

Ответы [ 4 ]

0 голосов
/ 21 мая 2019

Что я могу порекомендовать, и что для меня сработало, это установить следующие пакеты версий:

 "reactotron-react-native": "3.5.0",
    "reactotron-redux": "3.1.0",

Тогда вам нужно будет соответственно настроить store:

import {createStore, applyMiddleware, compose, combineReducers} from 'redux';

const appReducer = combineReducers({
  ...reducers,
});
const middleware = applyMiddleware(thunkMiddleware);
//react-native-debugger config
// eslint-disable-next-line no-underscore-dangle
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
// const store = Reactotron.createStore(appReducer, composeEnhancers(middleware));
const store = createStore(appReducer, composeEnhancers(middleware, Reactotron.createEnhancer()));

Теперь, конечно, вышесказанное является моей настройкой, но вам нужно будет соответствующим образом настроить свою настройку, суть которой заключается в том, чтобы следовать Конфигурации, как описано здесь: https://github.com/infinitered/reactotron/blob/master/docs/plugin-redux.md

0 голосов
/ 23 ноября 2018

Прежде всего, вы не назначаете сконфигурированный объект Reactotron своему значению console.tron. Вам нужно сделать что-то вроде этого:

console.tron = Reactotron.configure({ ...

Глядя на ваш файлactotronConfig.js, я замечаю, что вы отправляете его на локальный хост. Это будет работать только при работе на симуляторе (не уверен, что это то, что вы делаете).

Если вы хотите запустить его на устройстве, вам нужно будет дать ему IP-адрес вашего упаковщика. Оптимальный способ сделать это - использовать следующий код:

import { NativeModules } from 'react-native';

let packagerHostname = "localhost";
if (__DEV__) {
 const scriptURL = NativeModules.SourceCode.scriptURL;
 packagerHostname = scriptURL.split("://")[1].split(":")[0];
}

const reactotron = Reactotron.configure({
  name: "myAPPILOC",
  host: packagerHostname
});

console.tron = Reactotron;
0 голосов
/ 10 апреля 2019

Вам необходимо сделать следующее:

  1. ввести в CLI: adb reverse tcp:9090 tcp:9090
  2. добавить это в файл (например, lib / Reactotron.js):
import Reactotron, { asyncStorage } from 'reactotron-react-native';
Reactotron
    .configure() // controls connection & communication settings
    .useReactNative(asyncStorage()) // add all built-in react native plugins
    .connect();
импортируйте файл в ваш app.js:
    if (__DEV__) {
      import('../../lib/Reactotron').then(() => console.log('Reactotron Configured'));
    }

Примечание : если вы не хотите использовать host Свойство внутри configure(), обязательно используйте 127.0.0.1.В моем случае другой IP (даже если локальный, например, 192.xxx) не работает.

После этого ваше соединение должно работать, и вы можете использовать Reactotron, как описано в Документах.


СОВЕТ:

Для Linux и Mac вы можете добавить это в package.json (script-section) (отрегулируйте путь и вызов вашего реакции-приложения вваши потребности):

"scripts": {
...
    "reactotron": "adb reverse tcp:9090 tcp:9090 && /opt/Reactotron/reactotron-app",
...
}
0 голосов
/ 17 сентября 2018

Пожалуйста, включите режим отладки (нажмите ⌘ + D на симуляторе iOS, ⌘ + M на эмуляторе Android или встряхните реальные устройства).Затем убейте приложение и перезапустите приложение.

Надеюсь, это поможет

...