Vue: key attribute set by `v-bind="obj"` is ignored by transition-group

Created on 14 Jun 2017  路  4Comments  路  Source: vuejs/vue

Version

2.3.4

Reproduction link

https://codepen.io/Nirazul/pen/RgGRjm

Steps to reproduce

  1. Click on the trigger button
  2. There is only one list visible instead of two

What is expected?

According to the documentation I was expecting that I can use the v-bind object notation to set the key attribute.

What is actually happening?

The list is not rendered when the key attribute is not directly present on the element.


I'm aware that key is a special attribute and that there may be some sort of "hen and egg" problem at work when rendering items in a transition-group.
If the behaviour is intentional, there's maybe some space for improvement in the documentation.

Most helpful comment

@yyx990803

OK, boss

All 4 comments

Yeah, we should improve the docs regarding the special case for key. In fact all reserved attributes cannot be bound using v-bind object syntax.

/cc @chrisvfritz

... I'm fixing it

ping @yyx990803

https://github.com/vuejs/vue/blob/dev/src/core/instance/render-helpers/bind-object-props.js#L27

Can I add an error warn here?

@gebilaoxiong ah, I realized it should indeed be fixable. Just check for the special keys in https://github.com/vuejs/vue/blob/dev/src/core/instance/render-helpers/bind-object-props.js

@yyx990803

OK, boss

Was this page helpful?
0 / 5 - 0 ratings

Related issues

gkiely picture gkiely  路  3Comments

bdedardel picture bdedardel  路  3Comments

bfis picture bfis  路  3Comments

aviggngyv picture aviggngyv  路  3Comments

paulpflug picture paulpflug  路  3Comments