我在VueJS应用程序中遇到了一些错误。 IMG - http://prntscr.com/exh499
我理解存在错误,因为在从Weather JSON加载数据之前,country
属性不存在,但是删除此错误的方法是什么。也高于[Vue warn]:
这是GitHub的回购,还有一些代码,所以我不确定你是否可以在这里阅读。 https://github.com/DenisLapi/weather-app
如果我在组件1中编辑该属性(我是usign $ emit),但是当我在组件2中定义属性值然后在组件1中编辑该属性时,如何在组件2中查找某些属性的更改$ emit和props []似乎在组件2中没有更新值
[Vue warn]: Error in render function : (found in <SearchResult> at C:\Users\denis\Desktop\weatherapp\src\components\Result.vue)
TypeError: Cannot read property 'country' of undefined
答案 0 :(得分:1)
var game = new Phaser.Game(500, 200, Phaser.Auto, '',
{
preload: preload,
create: create,
update: update
}
);
function preload() {
game.load.image('tank', 'assets/tank.png')
game.load.image('tankEnemy', 'assets/tankEnemy.png')
}
function create() {
game.stage.backgroundColor = '#3598db'
game.physics.startSystem(Phaser.Physics.ARCADE);
game.world.enableBody = true;
this.cursor = game.input.keyboard.createCursorKeys();
this.tank = game.add.image(200, 75, 'tank')
this.enemy = game.add.image(0, 0, 'tankEnemy')
}
function update() {
if (this.cursor.left.isDown) {
this.tank.position.x -= 3;
}
else if (this.cursor.right.isDown) {
this.tank.position.x += 3;
}
else if (this.cursor.up.isDown) {
this.tank.position.y -= 3;
}
else if (this.cursor.down.isDown) {
this.tank.position.y += 3;
}
enemyMovement();
}
function enemyMovement() {
enemy.position.x += 3; //how can I access 'enemy' from above?
}
未定义,这很好,但是citydata.foo
是一个错误,因为您试图让citydata.foo.bar
关闭bar
。
您应该使用undefined
使用citydata
来包装所有内容,因为它是异步的。
v-if
答案 1 :(得分:0)
编辑:摆弄一个有效的例子https://jsfiddle.net/wostex/63t082p2/24/
顺便说一句,JSON输出中没有'country'属性:example
你可以
设置道具的default
值:https://vuejs.org/v2/guide/components.html#Prop-Validation
在模板中使用它们之前检查属性存在(内容块上v-if
)
关于道具变化的反应:使用取决于道具价值的computed property
,甚至是watch
道具变化:https://vuejs.org/v2/guide/computed.html#Watchers(这取决于您的需求)