【发布时间】:2016-12-17 20:18:08
【问题描述】:
我正在编写一个 React + Redux + ReactNative 应用程序,它为多个平台(Web、IOS、Android)共享相同的代码。
所以 UI 组件是不同的,但模型和逻辑在平台之间是共享的。
当我试图导航到一个不同的页面时,我遇到了一个问题,例如:(我正在使用 react-router 和 react-native-router-flux)
import {browserHistory} from "react-router";
import {Actions} from 'react-native-router-flux'; // This is the problematic import
export function signInSuccessAndRoute(user) {
if (PlatformInfoShared.isWeb()) {
const path = '/dashboard';
browserHistory.push(path);
} else {
Actions.mainApplication();
}
return signInSuccess(user);
}
问题是,在网络上我收到了这个错误:
index.js:1Uncaught SyntaxError: Unexpected token import
我正在寻找一种作为 If 语句导入的方法,这意味着仅当平台是移动/Web 时才导入,这怎么可能?
或者您可能想到的任何其他选项... 谢谢
【问题讨论】:
-
我没有看到路由在行动中的原因。为什么不在发送动作的组件中导航?
-
@PaulS 在登录/刷新令牌等异步操作上,如果出错,我想导航到“/login”,成功时导航到“/app”。在我对使用 redux 进行路由的研究中,对操作使用导航是很常见的事情......
-
它是调用
signInSuccessAndRoute的单个组件,还是您有单独的Web/本机组件,每个组件都调用此函数? -
分离组件,每个组件都调用此操作
-
@PaulS 你有什么建议?你有一个例子吗?重定向将通过应用程序状态进行,每次状态更改时都会重定向..不一定是重定向...我看不出不从动作中进行导航有什么意义...
标签: javascript reactjs react-native react-router react-native-router-flux