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

Update a specific property of an object attribute in a Wordpress Gutenberg block

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

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 时,没有任何变化。当我保存 post 时,没有为该属性保存任何内容。我知道该函数被正确调用并传递了正确的 valueindex(我 console.log 它们)。我一直在搜索 Gutenberg 文档,但它似乎没有提及任何相关内容。

不确定我是什么missing/doing错了。

您正在调用 onChangeURL ,但您的方法名为 onChangeValue.

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

尝试将您的 onChangeValue 更改为:

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