我有一个带有 2 个私有属性的 Lightning Web 组件。一个属性是通过轨道反应的,第二个是非反应性的(未装饰)。
这是 HTML 文件:
<template>
<table style="background: white;">
<tr>
<td>
Reactive Private Property:
<lightning-input type="text" onchange={reactiveHandler}></lightning-input>
Value: {reactiveProperty}
</td>
</tr>
<tr>
<td>
Nont-Reactive Private Property:
<lightning-input type="text" onchange={nonReactiveHandler}></lightning-input>
Value: {nonReactiveProperty}
</td>
</tr>
</table>
</template>
这是 JS 文件:
import { LightningElement, track } from 'lwc';
export default class ReactiveAndNonReactiveProperties extends LightningElement {
@track reactiveProperty;
nonReactiveProperty;
reactiveHandler(event) {
this.reactiveProperty = event.target.value;
}
nonReactiveHandler(event) {
this.nonReactiveProperty = event.target.value;
}
}
如您所见,只有一个属性用@track 修饰。但是,当我在非反应性属性的输入文本中键入内容时,它仍会呈现在屏幕上,这在我更改反应性属性的输入文本中的值之前不会发生。