我正在尝试提取所选父页面的子页面列表。我按照示例创建了自己的商店(https://developer.wordpress.org/block-editor/packages/packages-data/) 我现在有一家商店处于“子级”状态,其中包含一系列帖子,这些帖子都是所选父级的所有子级。在加载时效果很好,但是如果以后再更改父级,异步api调用将不会总是触发。我知道我们不想提出大量的获取请求,但是当父级更改时,我需要拉出新的子级页面。我以为也许在“父”属性更改时需要分派“ getChildren”操作,但这也不总是触发api调用。
也许自定义商店不是前进的正确路径?感谢您的帮助或重定向。
存储功能:
const actions = {
getChildren(parent) {
return {
type: 'GET_CHILDREN',
parent
}
},
setChildren(children) {
return {
type: 'GET_CHILDREN',
children
}
}
}
registerStore('my/store', {
reducer(state = { children: '' }, action) {
switch (action.type) {
case 'SET_CHILDREN':
return {
...state,
children: action.children
}
default:
return state
}
}
actions: actions,
selectors: {
getChildren(state) {
const { children } = state
return children
}
},
controls: {
GET_CHILDREN(action) {
return apiFetch({ path: `custom_api_point?parent=${action.parent}` })
}
},
resolvers: {
* getChildren(parent) {
const children = yield actions.getChildren(parent)
return actions.setChildren(children)
}
}
})
我的方块的编辑功能的相关部分:
...
edit: compose(
withSelect((select, ownProps) => {
return {
children: select('my/store').getChildren(ownProps.attributes.parent)
}
})
)(props => {
...