Я пытаюсь получить список дочерних страниц выбранной родительской страницы.Я последовал примеру, чтобы создать свой собственный магазин (https://developer.wordpress.org/block-editor/packages/packages-data/) Теперь у меня есть магазин с состоянием «дети», который содержит массив сообщений, которые являются всеми дочерними элементами выбранного родителя. Отлично работает при загрузке, но если яПосле изменения родительского элемента вызов async api не всегда срабатывает. Я понял, что мы не хотим делать кучу запросов на выборку, но когда меняется родитель, мне нужно перетянуть новые дочерние страницы.Мне нужно было отправить действие «getChildren» при изменении атрибута «parent», но это также не всегда запускает вызов 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 => {
...