在Wordpress Gutenberg块中更新对象属性的特定属性

时间:2019-06-04 23:11:56

标签: wordpress-gutenberg gutenberg-blocks

我有一个带有属性的自定义古腾堡块:

valuesObj: {
    type: 'object',
    default: {},
}

当输入更改时,我想更新该对象内的特定属性。因此,我创建了一个从组件上的onChange调用的函数:

<TextInput
    value={ valuesObj[index] }
    onChange={ (value) => this.onChangeValue(value, index) }
/>

这是被调用的函数:

onChangeValue(value, index) {
    var newValuesObj = this.props.attributes.valuesObj;

    newValuesObj[index] = value;

    this.props.setAttributes({ valuesObj: newValuesObj });
};

由于某种原因,这似乎根本不起作用。当我输入TextInput时,没有任何变化。当我保存帖子时,不会为该属性保存任何内容。我知道函数被正确调用并传递正确的valueindex(我console.log)。我一直在搜索Gutenberg文档,但似乎没有提及任何内容。

不确定我错过了什么/做错了什么。

1 个答案:

答案 0 :(得分:1)

您正在调用onChangeURL,但是您的方法称为onChangeValue

我不确定index的值来自何处,但尝试在onChangeValue中创建一个新对象,并为您的属性设置此新对象。

尝试将onChangeValue更改为以下内容:

onChangeValue(value, index) {
    var newValuesObj = {};
    newValuesObj[index] = value;
    this.props.setAttributes({ valuesObj: newValuesObj });
  }