HarmonyOS 鸿蒙Next:如何根据变量动态设置链式属性
HarmonyOS 鸿蒙Next:如何根据变量动态设置链式属性
我知道我这么写是错的,但是不知道应该怎么写
我希望根据变量,isLocal 来决定是不是要设置 onInterceptRequest
import { webview } from ‘@kit.ArkWeb’; import JsBridge from ‘./JSBridge’;
@Component struct Index { controller: webview.WebviewController = new webview.WebviewController(); @Prop src: string | Resource = ‘’; @Prop isLocal: boolean = true; @State jsBridge: JsBridge = new JsBridge();
aboutToAppear() { // 配置Web开启调试模式 webview.WebviewController.setWebDebuggingAccess(true); }
getMimeType(filePath: string) {
<span class="hljs-keyword"><span class="hljs-keyword">return</span></span> mimeType
}
build() { Web({ src: this.src, controller: this.controller }) .domStorageAccess(true) .javaScriptProxy({ object: this.jsBridge, name: ‘jsBridge’, methodList: this.jsBridge.methodList, controller: this.controller }) if (this.isLocal) { .onInterceptRequest(event => { const rawFilePath = event.request.getRequestUrl().replace(‘http://localhost/’, ‘’) const webResourceResponse = new WebResourceResponse(); webResourceResponse.setResponseEncoding(“UTF-8”); webResourceResponse.setResponseCode(200); webResourceResponse.setResponseData($rawfile(rawFilePath)); webResourceResponse.setResponseMimeType(this.getMimeType(rawFilePath)); return webResourceResponse; }) }else {
}
} }
export default Index;
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
可以尝试使用三目运算符,this.isLocal?xxxxx:undefined
更多关于HarmonyOS 鸿蒙Next:如何根据变量动态设置链式属性的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
三目运算符
看到这些,我头疼,不敢随意串改😂
在HarmonyOS(鸿蒙)中,如果你想根据变量动态设置链式属性,你可以考虑使用反射(Reflection)或者构建一个动态执行的表达式系统(如果HarmonyOS的SDK支持此类功能)。然而,由于HarmonyOS的API和框架设计,直接的链式调用可能并不支持动态解析。
一种常见的替代方案是使用if-else
或switch
语句来根据变量的值选择不同的链式调用路径。如果属性设置非常频繁或复杂,可以考虑使用策略模式或状态模式来管理不同的链式调用逻辑。
如果问题依旧没法解决请加我微信,我的微信是itying888。
更多关于HarmonyOS 鸿蒙Next:如何根据变量动态设置链式属性的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html