当 redux 中有属性时,如何在 litElement 中使用 @property 装饰器语法

问题描述

当我们使用构造函数分配@property 装饰器看起来像

@property ({type: String}) name = 'Luis';

并且它的工作正常 但是当我使用 redux 并因此使用 _stateChanged 时,我尝试使用

@property ({type: String}) name

没有名称值,因为值在 _stateChanged 函数中定义 那么如何让它一起工作

我发现了很多人们像这样使用这个装饰器的例子

export class MyElement extends LitElement {
 

     @property({type: String}) propertyName = "name"

它可以代替构造函数定义,但就我而言,我有 _stateChanged function 并且当我编写这样的代码时,它不会像它应该的那样工作,请给我示例使用此装饰器与 _stateChanged(redux)

解决方法

您可以继续使用常规的 @property,无论该值是从外部设置的还是从内部设置的,例如还原。类型信息只是为了让 LitElement 根据属性填充属性值,但只要设置了同名的属性,它就会被忽略。

您也可以使用 @internalProperty,它不需要您定义类型,也不会将属性反映到具有相同名称的属性。