попробуйте что-нибудь подобное
// App.js
import { createStackNavigator, createAppContainer } from 'react-navigation';
import NavigationService from './NavigationService';
const TopLevelNavigator = createStackNavigator({ /* ... */ })
const AppContainer = createAppContainer(TopLevelNavigator);
export default class App extends React.Component {
// ...
render() {
return (
<AppContainer
ref={navigatorRef => {
NavigationService.setTopLevelNavigator(navigatorRef);
}}
/>
);
}
}
// NavigationService.js
import { NavigationActions } from 'react-navigation';
let _navigator;
function setTopLevelNavigator(navigatorRef) {
_navigator = navigatorRef;
}
function navigate(routeName, params) {
_navigator.dispatch(
NavigationActions.navigate({
routeName,
params,
})
);
}
// add other navigation functions that you need and export them
export default {
navigate,
setTopLevelNavigator,
};
Нет, хотя AIR действительно имеет локальную (клиентскую) базу данных SQLite встроенной. Вы действительно не хотите, чтобы Ваши клиентские приложения имели прямой доступ к базе данных серверной стороны так или иначе, это может действительно вызвать странные проблемы и открыть проблемы безопасности. Можно выставить базу данных MySQL с веб-сервисами как бы то ни было. Эта статья имеет действительно простой способ сделать его.
Я должен был бы не согласиться (хотя почтительно!) с Abdullah, что встраивание клиента ODBC в AIR "вызвало бы странные проблемы и открыло бы проблемы безопасности" - это часто, как это сделало (например, Java и.NET, оба из чей пакета времени выполнения различные клиенты ODBC) - но оба плаката являются правильными: кодирование единственного пути своего рода, с которым сервис соединяет интерфейсом в Ваше приложение AIR (использующий классы Flex как WebService, HTTPService, и так далее) и дополнительный интерфейс серверной стороны (например, REST через PHP, который затем соединился бы с Вашей базой данных MySQL). Для простых приложений это может быть что-то вроде боли, но в настоящий момент, это - все мы gots.:)
Всего наилучшего
Я не пробовал да, но есть некоторые проекты для реализации собственного драйвера в AS3 для подключения на сервер MySQL В конце концов, это просто сокетное соединение, и приложениям AIR разрешается открывать сокет. Взгляните на http://code.google.com/p/assql/
Я не рекомендовал бы получить доступ к базе данных непосредственно. Я описываю, как я сделал бы это здесь.
ИМХО, лучший способ получить доступ к любой базе данных из приложения Flex (Air или Flash) - это создать веб-сервис. После нескольких попыток работы с PHP я освоил сборку веб-службы WSDL SOAP на C #, и это прекрасно! С C # я всегда получал PostgreSQL, MySQL, SQL-SERVER или Oracle. А с помощью Flex Builder вы можете импортировать WSDL, чтобы объекты и веб-методы, созданные на стороне WSDL, создавались для вас с событиями, списками и объектами. Пытаться. WSDL SOAP - отличная альтернатива C #, Java или любому другому языку.