我正在使用Vue路由器和基于文件的组件。我打电话给其中一条路线casetail。vue
并获取一个参数(slug),该参数使用axios从API获取json。
我使用“组件内保护”来实现这一点,使用名为beforeRouteEnter的方法。我正在将axios的响应传递到下一个方法。
axios.get('/case/'+ to.params.slug +'.json').then((response) => {
next(vm => {
vm.entry = response.data;
})
});
这是可行的,但是,Vue在设置数据之前呈现视图。这将生成未定义的
错误。我如何告诉Vue等待它获取数据?
我的模板:
<template>
<main>
<h1>{{ entry.title }}</h1>
</main>
</template>
我的组成部分:
export default{
name: 'CaseDetail',
data(){
return{
entry: null
};
},
...
处理步骤:
中的next()。此时,由于组件已创建,所以vm
变量可用
如果您登录您的组件
created() {
console.log('Component is created!')
},
beforeRouteEnter(to, from, next) {
setTimeout(() => {
next(vm => {
console.log('next() is called')
})
}, 3000)
},
那么结果会是
组件已创建!
调用next()
您应该为数据设置默认值,或者添加安全检查。
<template>
<main>
<h1>{{ entry? entry.title: '' }}</h1>
</main>
</template>
我是reactjs新手,我想在服务器中获取数据,以便它将包含数据的页面发送给客户端。 当函数getDefaultProps返回像这样的虚拟数据时是可以的{data:{book:[{...},{...}]}}。 但是不适用于下面的代码。代码按此顺序执行,并带有错误消息“无法读取未定义的属性'book'” getDefaultProps 返回 取 {data:{book:[{...},{...}]}}
我试图在呈现组件之前从API加载事件。目前我正在使用我的API服务,我从组件的ngOnInit函数调用该服务。 我的组件: 我的模板 我的API服务 组件在函数中的API调用完成获取数据之前呈现。所以我从来没有看到我的视图模板中的事件ID。所以看起来这是一个ASYNC问题。我期望在设置了属性后,绑定(组件)来完成一些工作。可悲的是,当属性被设置时,它不显示用标记的。 问:我用的方法好吗?如果没有;
我使用了fetch方法向后端发送了一个请求,获取到了返回数据之后 ,该数据是一个对象类型的,我如何批量创建li到该ul中呢?li中要对应对象的属性 后端数据格式
接口说明 获取之前设置的数据的权限 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /api/power/1.0.0/getJson 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 dataGuid string form 是 素材id 响应字段说明 无 响应成功示例 { "code": 200, "d
问题内容: 我有一个react组件,需要 在渲染之前 预先知道其尺寸 。 当我在jquery中制作一个小部件时,我可以在构建组件时提前获取容器的宽度。 这些容器的尺寸以及页面上的其他许多容器都在CSS中定义。谁在React中定义组件的高度,宽度和位置?我已经习惯了CSS并能够访问它。但是在React中,似乎我只能在组件渲染后访问该信息。 问题答案: 如前所述,在将元素呈现为DOM之前,您无法获得任
问题内容: 如何在 呈现字符串之前获取字符串将占用的行数。 将不起作用,因为它们仅在呈现后才被触发。 问题答案: final Rect bounds = new Rect(); final Paint paint = new Paint(); paint.setTextSize(currentTextSize); paint.getTextBounds(testString, 0, testStr