我正在创建一个具有许多属性的 gutenberg 块,并尝试为可以通过输入字段更改的属性创建一个通用函数。对于属性title
,我有:
<RichText
onChange={this.props.onTitleChange}
value={this.props.title}
/>
字符串
和
function onTitleChange(value) {
setAttributes({title: value});
}
型
这是可行的。现在我想创建一个通用函数,在setAttributes()
中,title
可以是我从React onChange
传递的任何东西。我尝试了另一个函数onValueChange
:
<RichText
onChange={this.props.onValueChange.bind("title")}
value={this.props.title}
/>
型
和
function onValueChange(value) {
setAttributes({this: value});
}
型
这不起作用,因为“this”不是我的块的属性。即使我的函数onValueChange
中的this
确实等于“title”,它是与bind()
函数一起传递的。我不确定我试图做的是否可行,因为我不完全理解setAttributes()
函数,但如果可以做到,它将保存大量时间和额外代码,因为否则我必须为所有的属性创建一个onXChange()
函数。所以我的问题是:我如何用setAttributes()
为动态属性设置一个值?
3条答案
按热度按时间gywdnpxw1#
原来我所要做的就是把
this
放在括号里,所以:字符串
保持绑定属性:
型
另一种选择是像这样内联地使用
setAttributes
:型
确保将
title
更改为属性的名称。v1uwarro2#
目前我能想到的是:
字符串
第一个月
e5nszbig3#
在这里找到答案真是太棒了。我试图把这个问题更进一步,这让我更简单!
现在我有了一个组件,可以反复使用它来实现我想要的所有属性。
字符串
现在我可以像这样把它加到我的积木上
型