Я хочу передать массив из одного компонента в другой в vueJs, что я могу сделать с
<add-new-admin-modal
:permissions = "permissions"
</add-new-admin-modal>
В моем другом компоненте, который на самом деле является модальным, я получаю реквизиты как,
props: {
permissions: {
type: Array,
default: () => []
}
}
Здесь, когда я пытаюсь изменить массив разрешений, он отражает родительские данные, как упомянуто в документации.
https://vuejs.org/v2/guide/components-props.html#One-Way-Data-Flow
, поэтому я попытался соператор распространения
data () {
return {
statePermissions: [...this.permissions]
}
}
Массив statePermissions по-прежнему пуст, когда я пытаюсь использовать вышеуказанный метод,
Я даже пытался использовать Object.assign
data () {
return {
statePermissions: Object.assign([], this.permissions)
}
}
Тем не менее, это не такработа.
В моем модале я обращаюсь к нему как
<div v-for = "permission in statePermissions" :key = "permission.id">
...someHtml here.
</div>
Основная идея в том, что у меня есть компонент, который получает данные через API, затем у меня есть модал, который принимаетэти данные и обновляет его соответственно и представить его в API.Когда модальное окно закрыто, родительский компонент должен иметь неотредактированные данные, поэтому, если модальное окно будет открыто снова, оно должно получить неотредактированные данные.
В процессе использования модального режима мой родительский компонент остается в том же состоянии.(Он не монтируется и не изменяется), поэтому нет смысла снова запрашивать данные по умолчанию у родителя.