Переопределение атрибутов JSX с помощью атрибутов распространения JSX - PullRequest
2 голосов
/ 25 октября 2019

JSX не разрешает указывать атрибут более одного раза.

F.ex.

<Component prop1="a" prop1="b" />        /* <- This is not allowed */

Мне было интересно, что произойдет, если атрибут указан один раз явно, но, кроме того,компоненту передается другой атрибут распространения, содержащий тот же атрибут:

<Component prop1="a" {...obj} />         /* where obj contains an attribute called "prop1" */

Будет ли важен порядок атрибутов? Например, будет ли второй атрибут переопределять первый?

1 Ответ

1 голос
/ 25 октября 2019

Приспособление, которое идет вторым, переопределит первое.

В этом случае prop1 будет "b".

ex:

const obj = {prop1: 'b' };
return (<Component prop1="a" {...obj} />);

Это следуеткак работает распространение объектов.

Синтаксис распространения MDN

ex:

const a = { prop1: 'a' };
const b = { prop1: 'b' };
const c = { ...a, ...b };

Объект c будет иметь prop1 "b" потому что объект b был распространен во 2-м.

ex: Кодовая песочница

edit: Для дополнительных доказательств и документов от реакции: Распространение атрибутов в реакции

...