У меня есть сценарий, в котором я хочу использовать объединение данных, чтобы добавить 2 новых элемента для каждого элемента данных.
Первоначально я делал что-то вроде этого:
var y = d3.selectAll("line")
.data([123, 456]);
y.enter().append("line"); // assume attr and style set
y.enter().append("line");
y.transition()...
Прежде чем я все обдумал, я ожидал, что выбор обновления, используемый в моем переходе, будет содержать объединенные добавления из выбора входа. Но, конечно, это не сработало, потому что в выборке есть только 1 слот для каждого элемента данных.
Поэтому я изменил код таким образом, чтобы он по-прежнему дважды использовал один и тот же выбор enter(), но затем повторно выбирал новые элементы, чтобы выполнить переход.
Этот подход сработал, но мой вопрос заключается в том, является ли этот способ рекомендуемым. Должен ли я прекратить использовать enter() после добавления/вставки? Или можно использовать его для создания нескольких элементов, если я помню, что выбор обновления будет содержать только элементы, созданные последними?
Если выяснится, что это неправильно, как это лучше сделать?