Просто хотел протестировать и взглянуть на Nativescript с Vue, но, к сожалению, похоже, что он не работает. После добавления пары строк, следующих за руководством, сразу же получается sh, так что это не самое лучшее из презентации ... Но, возможно, я сделал что-то не так, или руководства больше не работают, как ожидалось, и поэтому я делюсь исходный код, который я добавил, чтобы посмотреть, могу ли я что-то сделать, чтобы он работал правильно:
app. js:
import Vue from 'nativescript-vue'
import VueDevtools from 'nativescript-vue-devtools'
import store from './store'
import Home from './components/Home'
if (TNS_ENV !== 'production') {
Vue.use(VueDevtools)
Vue.config.devtools = true
Vue.config.debug = true
Vue.config.silent = false
}
new Vue({
store,
components: {
Home
},
render: h => h('frame', [h(Home)])
}).$start()
Я добавил VueDevtools
и Vuex Store :
store / index. js:
import Vue from 'vue'
import Vuex from 'vuex'
import users from './modules/users'
Vue.use(Vuex)
const debug = process.env.NODE_ENV !== 'production'
const store = new Vuex.Store({
modules: {
users
},
strict: debug
})
Vue.prototype.$store = store;
export default store
store / modules / users. js:
const namespaced = true
const state = () => getDefaultState()
const mutations = {
SET_USER: (state, user) => {
state.user = user
}
}
const actions = {
async getUser({ commit }, id) {
try {
const user = await this.$axios.$get(`/users/${id}`)
commit('SET_USER', user)
} catch (error) {
throw error.response
}
}
}
export default {
namespaced,
state,
mutations,
actions
}
Как видите, все очень просто. Хранилище, которое я использовал, является рабочим хранилищем из проекта Nuxt, который я должен скопировать в Nativescript sh.
После запуска tns preview
на мобильном устройстве выводится Fatal javascript исключение с несколькими трассировками собственного стека (0x101871d50, et c ...):
***** Fatal JavaScript exception - application has been terminated. *****
2020-02-03 10:25:47.484 nsplaydev[14171:3821642] Native stack trace:
1 0x101871d50 NativeScript::reportFatalErrorBeforeShutdown(JSC::ExecState*, JSC::Exception*, bool)
2 0x1018b93b0 -[TNSRuntime executeModule:referredBy:]
3 0x102a7e25c -[UIApplication(PlayLiveSync) swizzled_executeModule:]
4 0x101003524
5 0x192909050 <redacted>
2020-02-03 10:25:47.485 nsplaydev[14171:3821642] JavaScript stack trace:
2020-02-03 10:25:47.485 nsplaydev[14171:3821642] handleCopy(file:///app/vendor.js:4255:46)
at file:///app/vendor.js:3942:36
at on(file:///app/vendor.js:3882:23)
at emit(file:///app/vendor.js:3922:29)
at devtoolPlugin(file:///app/vendor.js:29630:19)
at Store(file:///app/vendor.js:29940:18)
at ./store/index.js(file:///app/bundle.js:412:69)
at __webpack_require__(file:///app/runtime.js:751:34)
at fn(file:///app/runtime.js:121:39)
at file:///app/bundle.js:204:83
at ./app.js(file:///app/bundle.js:266:34)
at __webpack_require__(file:///app/runtime.js:751:34)
at checkDeferredModules(file:///app/runtime.js:44:42)
at webpackJsonpCallback(file:///app/runtime.js:31:39)
at anonymous(file:///app/bundle.js:2:61)
at evaluate([native code])
at moduleEvaluation([native code])
at [native code]
at asyncFunctionResume([native code])
at [native code]
at promiseReactionJob([native code])
2020-02-03 10:25:47.485 nsplaydev[14171:3821642] JavaScript error:
file:///app/vendor.js:4255:46: JS ERROR ReferenceError: Can't find variable: HTMLElement
2020-02-03 10:25:47.487 nsplaydev[14171:3821642] PlayLiveSync: Uncaught Exception
2020-02-03 10:25:47.487 nsplaydev[14171:3821642] *** JavaScript call stack:
(
)
2020-02-03 10:25:47.487 nsplaydev[14171:3821642] *** Terminating app due to uncaught exception 'NativeScript encountered a fatal error: ReferenceError: Can't find variable: HTMLElement
at
handleCopy(file:///app/vendor.js:4255:46)
at file:///app/vendor.js:3942:36
at on(file:///app/vendor.js:3882:23)
at emit(file:///app/vendor.js:3922:29)
at devtoolPlugin(file:///app/vendor.js:29630:19)
at Store(file:///app/vendor.js:29940:18)
at ./store/index.js(file:///app/bundle.js:412:69)
at __webpack_require__(file:///app/runtime.js:751:34)
at fn(file:///app/runtime.js:121:39)
at file:///app/bundle.js:204:83
at ./app.js(file:///app/bundle.js:266:34)
at __webpack_require__(file:///app/runtime.js:751:34)
at checkDeferredModules(file:///app/runtime.js:44:42)
at webpackJsonpCallback(file:///app/runtime.js:31:39)
at anonymous(file:///app/bundle.js:2:61)
at evaluate([native code])
at moduleEvaluation([native code])
at [native code]
at asyncFunctionResume([native code])
at [native code]
at promiseReactionJob([native code])
', reason: '(null)'
*** First throw call stack:
(0x192ecdeb8 0x1920c7f18 0x10187221c 0x1018b93b0 0x102a7e25c 0x101003524 0x192909050)
libc++abi.dylib: terminating with uncaught exception of type NSException
2020-02-03 10:25:47.487 nsplaydev[14171:3821642] PlayLiveSync: Uncaught Exception
Надеюсь, вы поможете!