Я пытаюсь встать и катиться с Vue Native, и я сталкиваюсь с той же ошибкой, когда пытаюсь перейти за пределы начального экрана
Предупреждение: React.createElement: тип недействителен - ожидается строка
(для встроенных компонентов) или класс / функция (для составного
компоненты), но получил: не определено. Вы, вероятно, забыли экспортировать свой
компонент из файла, в котором он определен, или вы могли перепутать
импорт по умолчанию и имен.
Check the render method of ReactVueComponent.
in ReactVueComponent (at SceneView.js:17)
in SceneView (at CardStack.js:466)
in RCTView (at View.js:60)
in View (at createAnimatedComponent.js:154)
in AnimatedComponent (at Card.js:12)
При поиске в моем каталоге ReactVueComponent
, он не существует, и SceneView.js
, и не RCTCView
, и т. Д. Я думаю, это потому, что они генерируются с помощью компиляции кода?
Мой роутер, index.vue
настроен следующим образом
<template>
<root>
<app-navigation></app-navigation>
</root>
</template>
<script>
import React from "react";
import { StackNavigator, navigationService } from "vue-native-router";
import { Root } from "native-base";
import WelcomeScreen from "./screen/WelcomeScreen.vue";
import HomeScreen from "./screen/home.vue";
const AppNavigation = StackNavigator(
{
Welcome: { screen: WelcomeScreen },
Home: { screen: HomeScreen }
},
{
initialRouteName: "Welcome",
headerMode: "none"
}
);
export default {
components: { Root, AppNavigation }
};
</script>
Мой WelcomeScreen
компонент (загружается правильно. Кнопка при нажатии выдает ошибку)
<template>
<nb-content padder>
<nb-form>
<view :style="{marginTop:300}">
<nb-button block :on-press="login">
<nb-text>Login</nb-text>
</nb-button>
</view>
</nb-content>
</template>
<script>
import { Dimensions, Platform, AsyncStorage } from "react-native";
import { NavigationActions } from "vue-native-router";
export default {
props: {
navigation: {
type: Object
}
},
methods: {
login() {
this.navigation.navigate("Home");
}
}
};
</script>
Компонент HomeScreen
, который не отображается:
<template>
<nb-container :style="{flex:1, backgroundColor: '#fff'}">
<nb-header>
<nb-body>
<nb-title>title</nb-title>
</nb-body>
</nb-header>
<nb-content>
<nb-list>
<li>thing 1</li>
<li>thing 2</li>
<li>thing 3</li>
</nb-list>
</nb-content>
</nb-container>
</template>
<script>
import React from "react";
import { Dimensions } from "react-native";
const SCREEN_WIDTH = Dimensions.get("window").width;
export default {
props: {
navigation: Object
}
};
</script>
Любые советы по этому вопросу будут высоко оценены. На Vue Native пока не так много, и я постарался следовать нескольким примерам, которые я видел, в меру своих возможностей. Дважды и трижды проверил мои зависимости, и все они, кажется, на месте.