From @jmansor
It works fine unless you zoom first, if you zoom, the scale remains fixed
https://jsfiddle.net/6jrqyL6f/2/
The container prop of VictorySharedEvents gets it's domain prop updated correctly (matching the new dataset)
But its child VictoryZoomVoronoiContainer keeps the old domain
Some more data:
The structure is like this:
<VictoryChart>
<VictorySharedEvents>
<VictoryZoomVoronoiContainer>
When changing the dataset, VictorySharedEvents.props.container.props.domain is set correctly with a domain that suits the new dataset. But VictorySharedEvents.state.parent.domain keeps the old domain value.
VictoryZoomVoronoiContainer.props.domain keeps the old domain value as well.

The problem seems to be related to events, in this case specifically with the onMouseWheel, it receives the targetProps with the old domain.
The attached screenshot is the result of this console.error (that I've added) in victory-shared-events.js
var parentProps = _defaults({}, this.getEventState("parent", "parent"), containerProps, this.baseProps.parent, { children: children })
console.error(this.getEventState("parent", "parent"), containerProps)
Because of the way _.defaults work, the getEventState result will set the value of the domain prop.
However I was unable to figure out where are the targetProps argument of the event is coming from. If you can provide some guidance, would be of great help.
Is there any workaround for this issue besides just forcing the whole chart to unmount before re-rendering?
When you not only set the domain on the VictoryChart, but also set the zoomDomain on the VictoryZoomContainer (or the mixin in the case above), the problem went away for us.
Any progress on this?
We are still having this issue and we are unmounting and mounting the chart every time but this has super low performance.
Most helpful comment
When you not only set the domain on the VictoryChart, but also set the zoomDomain on the VictoryZoomContainer (or the mixin in the case above), the problem went away for us.