我正在尝试使用react和framework7构建移动网络应用,但我似乎无法弄清楚框架7的路由是如何工作的。
下面你可以看到使用framework7 app初始化pagecontainer:
export default class AbstractPage extends Component {
constructor(props) {
super(props);
this.state = {
initialized: false
};
const logger = createLogger();
const reducer = combineReducers({ ...props.reducer, routing: routerReducer });
this.history = createBrowserHistory();
const historyMiddleware = routerMiddleware(this.history);
this.store = createStore(reducer, applyMiddleware(promise(), historyMiddleware, logger, thunkMiddleware));
this.routes: [
{path: '/', component: WallContainer},
{path: '/create', component: CreateContainer},
];
}
render() {
return (
<Provider store={this.store}>
<Router history={this.history}>
<Framework7App themeType="material" routes={this.routes}>
<Statusbar />
<LeftPanel />
<Views navbarThrough>
<View main url="/" dynamicNavbar>
<Pages>
<WallContainer />
</Pages>
</View>
</Views>
</Framework7App>
</Router>
</Provider>
);
}
}
通过上面的配置,我总是会渲染WallContainer。当我点击链接进入&#39;创建&#39;页面,网址更改为localhost:3000 / create,但页面没有更改,并且wallcontainer仍然可见。有谁知道我在这里做错了什么?谢谢!
答案 0 :(得分:0)
原来我忘记将我的framework7App上下文添加到我的类中。
WallContainer.contextTypes = {
framework7AppContext: PropTypes.object
};
如果您没有添加此上下文,则不会收到警告或异常,但路由不起作用。