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(鸿蒙)中,如果你想根据变量动态设置链式属性,你可以考虑使用反射(Reflection)或者构建一个动态执行的表达式系统(如果HarmonyOS的SDK支持此类功能)。然而,由于HarmonyOS的API和框架设计,直接的链式调用可能并不支持动态解析。
一种常见的替代方案是使用if-else
或switch
语句来根据变量的值选择不同的链式调用路径。如果属性设置非常频繁或复杂,可以考虑使用策略模式或状态模式来管理不同的链式调用逻辑。
如果问题依旧没法解决请加我微信,我的微信是itying888。