我有一个带有属性的自定义古腾堡块:
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
时,没有任何变化。当我保存帖子时,不会为该属性保存任何内容。我知道函数被正确调用并传递正确的value
和index
(我console.log
)。我一直在搜索Gutenberg文档,但似乎没有提及任何内容。
不确定我错过了什么/做错了什么。
答案 0 :(得分:1)
您正在调用onChangeURL
,但是您的方法称为onChangeValue
。
我不确定index
的值来自何处,但尝试在onChangeValue
中创建一个新对象,并为您的属性设置此新对象。
尝试将onChangeValue
更改为以下内容:
onChangeValue(value, index) {
var newValuesObj = {};
newValuesObj[index] = value;
this.props.setAttributes({ valuesObj: newValuesObj });
}