我在db文件夹中有一个db.js文件,我想在其中存储要包含在我的应用程序中的长文本:
const db = {
sodiumlaurylsulfate: "Essentiellement exploité comme tensioactif (qui permet aux corps gras de la formule de se disperser dans l’eau), le sodium lauryl sulfate est un irritant bien connu, les scientifiques le savent depuis des décennies. Il n’est qu’à compulser leurs publications pour s’en convaincre : ici on le désigne comme « l’irritant standard », là, on introduit le propos par « le sodium lauryl sulfate (SLS), un tensioactif fréquemment utilisé pour induire expérimentalement des dermatites de contact »… Cet ingrédient est malgré tout présent dans un très grand nombre de références. Mais ce sont le plus souvent des produits rincés, les doses ne sont pas forcément très élevées et certains consommateurs le supportent bien. Chez d’autres, en revanche, les produits lavants laissent la peau inconfortable (attention en particulier avec les produits pour enfants et ceux destinés aux zones intimes) et les dentifrices provoquent des aphtes. A noter que le sodium laureth sulfate est nettement moins irritant."
}
module.exports = {db};
在我的模板中,我这样称呼它:
<template>
<StackLayout>
<TextView :text="db.sodiumlaurylsulfate"></TextView>
</StackLayout>
</template>
<script>
import { db } from "../db/db.js";
export default {
mounted() {
console.log(db.sodiumlaurylsulfate) // this works !
}
}
</script>
当我在挂载上记录我的文本时,它可以工作,但会在TextView组件中出错。
System.err: com.tns.NativeScriptException:
System.err: Calling js method getView failed
System.err: TypeError: Cannot read property 'sodiumlaurylsulfate' of
undefined
System.err: File: "<unknown>, line: 3, column: 1489
System.err: StackTrace:
我似乎在这里做事不好。
答案 0 :(得分:1)
模板中的属性是根据组件状态而不是其词法范围评估的。将db
分配为状态的属性(在data()
部分中),它应该可以工作:
import { db } from "../db/db.js";
export default {
data() {
return { db }
},
mounted() {
console.log(this.db.sodiumlaurylsulfate); // should work too
}
}