我试图将我的财产发送InheritedWidget
给它的孩子。
class Detector extends InheritedWidget {
final bool isEditable;
Detector({@required this.isEditable, @required Widget child, Key key})
: super(child: child, key: key);
static Detector of(BuildContext context) {
return context.dependOnInheritedWidgetOfExactType<Detector>();
}
@override
bool updateShouldNotify(Detector oldWidget) {
return oldWidget.isEditable != isEditable;
}
}
Run Code Online (Sandbox Code Playgroud)
我在这里提到的。小部件由以下人员创建:
Detector(
isEditable: otherObj.isEditable,
child: command.makeWidget(context) // Extension method that returns new widget
);
Run Code Online (Sandbox Code Playgroud)
和makeWidget()
方法调用of
方法:
final detector = Detector.of(context);
if (detector != null && detector.isEditable) {
return Container(
child: ...,
);
}
Run Code Online (Sandbox Code Playgroud)
总是返回空值。为什么 …
Lit 文档将 Web Test Runner 称为测试。它导航到此示例页面。
我尝试过测试MyElement
,结果只有一个<p>
。
import { LitElement, html } from "lit";
import { customElement } from "lit/decorators.js";
@customElement("my-element")
export class MyElement extends LitElement {
render() {
return html`<p>Hello, World.</p>`;
}
}
declare global {
interface HTMLElementTagNameMap {
"my-element": MyElement;
}
}
Run Code Online (Sandbox Code Playgroud)
通过 open-wc 测试时,该元素shadowDom
没有<p>
in descendant
。
import { expect, fixture, html } from "@open-wc/testing";
import { MyElement } from "../src/MyElement";
it("get shadowDom", async () => { …
Run Code Online (Sandbox Code Playgroud)