Итак, в Vuejs я создал выпадающий компонент, который называется так:
<Dropdown
:style="{width: '100%'}"
v-on:selectReturn='selectReturn'
:dropDataArray="expenseType"/>
<Dropdown
:style="{width: '100%'}"
v-on:selectReturn='selectReturn'
:dropDataArray="loanType"/>
где в данных у меня
expenseType: [
'expenseType',
'one time',
'recurring',
'loan'
],
loanType: [
'loanType',
'new loan',
'recurring payment',
'one time payment'
]
В дочернем процессе мне нужно прочитать первую строку массива по разным причинам.
Итак, у меня есть ...
props: ['dropDataArray']
и ...
this.dataArrayName = this.dropDataArray[0];
ОДНАКО:
Запись в консоли
значения this.dataArrayName
показывает, что он изменяет 0-й элемент первого дочернего компонента на «loanType» (я вызываю это при нажатии @click). Это очень странно, поскольку я не передаю первому дочернему элементу Dropdown массив loanType! Я думаю, что я не согласен с предостережением реактивности для vuejs, но я не вижу, как или лучший способ изменить это. Если у кого-то есть идеи, пожалуйста, дайте мне знать. Спасибо!
Вот ссылка для кодаandbox.io https://codesandbox.io/s/x38j14900q.
Вы найдете проблему, если щелкнете верхнее поле выбора и посмотрите в консоль. Вы увидите это:
value of this.dataArrayName: loanType
когда это действительно должно быть ExpenseType!
Дальнейшее тестирование показывает, что проблема хуже, чем я ожидал.
<Dropdown
:style="{width: '100%'}"
:stringProp="'expenseString'"
:dropDataArray="expenseType"/>
<Dropdown
:style="{width: '100%'}"
:stringProp="'loanString'"
:dropDataArray="expenseType"/>
с props: ['dropDataArray', 'stringProp']
снова только возвращается loanString