HarmonyOS 鸿蒙Next 应用组件点击没反应
HarmonyOS 鸿蒙Next 应用组件点击没反应 用的是fa模型api9版本的js。写了自定义组件。在预览当中所有功能均正常可用(除了卡得贼要命之外),但部署于本地模拟器以及真机上,出现点击按钮无反应,或只能触发子组件js任务,父组件不能触发的情况。在线求指导,急急!
代码如下:
index.hml:
<element src="../components/todo1/todo/todo.hml">
<div class="container">
<div class="content2">
<todo></todo>
</div>
</div>
/components/todo1/todo/todo.hml:
<element src="../todo_list/todo_list.hml">
<div class="todo">
<div class="top">
<text class="title">待辦事項列表</text>
<div class="inputDiv">
<input placeholder="請輸入待辦事項" grab:change="onChange"/>
<button type="capsule" grab:click="onAdd">添加</button>
</div>
<div class="content">
<todo_list class="todoList" items="{{ items }}" @remove="onRemove"></todo_list>
</div>
</div>
</div>
/components/todo1/todo/todo.js:
export default {
data: {
item: '',
items: []
},
onInit() {
this.title = "Hello World";
},
onChange({value}) {
this.item = value
},
onAdd() {
if (this.item.startsWith("[") && this.item.endsWith("]")) {
console.log(`item: ${this.item}`)
const arr = JSON.parse(this.item)
this.items = this.items.concat(arr)
console.log(`items: ${this.items}`)
} else {
this.items.push(this.item)
console.log(JSON.stringify(this.items))
}
},
onRemove(e) {
let idx = e.detail.idx
console.log(`todo idx: ${idx}`)
this.items.splice(idx, 1)
}
}
/components/todo1/todo_list/todo_list.hml:
<element src="../todo_item/todo_item.hml">
<div class="items">
<div class="listInfo">
<list>
<list-item for="{{ items }}" tid="id" clickeffect="false">
<todo_item item="{{ $item }}" idx="{{ $idx }}" @remove="onRemove($idx)">
</todo_item>
</list-item>
</list>
</div>
</div>
/components/todo1/todo_list/todo_list.js:
export default {
data: {
title: "",
},
props: {
items: [],
idx: ''
},
onInit() {
this.title = "Hello World";
},
onRemove(idx) {
console.log(`todo-list: ${idx}`)
this.$emit('remove', {
idx: idx
})
}
}
/components/todo1/todo_item/todo_item.hml:
<div class="item">
<div class="itemInfo">
<text>{{ idx + 1 }} . {{ item }}</text>
<button type="circle" grab:click="onRemove">X</button>
</div>
</div>
/components/todo1/todo_item/todo_item.js:
export default {
data: {
title: "",
/*items: [
{
id: 1, content: '你好', price: 3
},
{
id: 4, content: 'Hello', price: 4
},
{
id: 5, content: 'Fuck', price: 5
},
{
id: 6, content: '滾蛋', price: 6
}
]*/
},
props: {
item: '',
idx: ''
},
onInit() {
this.title = "Hello World";
},
onRemove() {
/* this.$emit('remove', {
idx: idx
})*/
console.log(`list_item: ${this.idx}`);
this.$emit('remove')
}
}
更多关于HarmonyOS 鸿蒙Next 应用组件点击没反应的实战教程也可以访问 https://www.itying.com/category-93-b0.html
建议使用Stage模型开发,API 9及以后版本主推Stage模型,FA模型已不再演进。
更多关于HarmonyOS 鸿蒙Next 应用组件点击没反应的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
如果FA是没有希望的,为什么不将FA彻底删除呢,这样就不会有人在错误的选项上耗费大把的精力,最终却被告知是死胡同。
在HarmonyOS Next中,应用组件点击无反应可能由以下原因导致:
- 事件绑定问题:确保组件的
onClick
事件已正确绑定,且事件处理函数无语法错误或逻辑问题。 - UI布局问题:检查组件是否被其他布局遮挡或覆盖,确保组件在可视区域内且可交互。
- 组件状态问题:确认组件是否处于禁用状态(如
enabled
属性为false
),导致无法响应点击事件。 - 生命周期问题:确保组件所在的页面或生命周期方法中未阻止事件传递或处理。
- 编译或运行环境问题:检查开发工具版本是否与HarmonyOS Next兼容,确保编译和运行时无错误。
- 权限问题:某些操作可能需要特定权限,确保应用已获取所需权限。
排查时,建议逐步检查上述可能原因,确认问题所在。