我正在尝试开发一个动态块插件,其中我使用Gutenberg存储多达7个链接,到目前为止,这是我代码的一部分:
edit: props => {
const {
attributes: {
links = [],
max_links = 7
},
setAttributes
} = props;
const onChangeLink = (index, newLink) => {
setAttributes({ links[index]: newLink });
};
const listItems = () => {
var items = [];
for(var i=1;i<max_links+1;i++) {
items.push(
<RichText
placeholder={__("Link "+i, "wpblock")}
value={links[i]}
onChange={onChangeLink} />
);
}
return items;
};
return [
<div>
<h2>Quick Links</h2>
<ul>
{listItems()}
</ul>
</div>
];
},
save(props) {
return null;
}
在保存时,我返回null,因为我将在php端将此部分作为回调处理。我在LinkedIn课程中看到了这一技术,它允许将来修改插件,而不会破坏已经使用插件的页面上的插件。
我的问题是:
1) 如何存储链接的值以使其保持不变?我看到过一些例子,但他们似乎总是将数据存储在帖子中,这似乎有些过头了。我也读过WP选项,但我也不确定这是我的最佳方法,或者我是否可以将其用于React?
2) 我的onChangeLink函数不起作用,我不确定如何调用它以便传递要编辑的链接的索引?