Skip to content

Commit 0f984ac

Browse files
committed
Moved snapshot value from Fiber to instance (__reactInternalSnapshotBeforeUpdate)
1 parent f68a77b commit 0f984ac

File tree

2 files changed

+7
-8
lines changed

2 files changed

+7
-8
lines changed

packages/react-reconciler/src/ReactFiber.js

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -150,9 +150,6 @@ export type Fiber = {|
150150
// memory if we need to.
151151
alternate: Fiber | null,
152152

153-
// Stores getSnapshotBeforeUpdate return value to be passed to componentDidUpdate
154-
snapshot: any | null,
155-
156153
// Conceptual aliases
157154
// workInProgress : Fiber -> alternate The alternate used for reuse happens
158155
// to be the same as work in progress.
@@ -207,8 +204,6 @@ function FiberNode(
207204

208205
this.alternate = null;
209206

210-
this.snapshot = null;
211-
212207
if (__DEV__) {
213208
this._debugID = debugCounter++;
214209
this._debugSource = null;

packages/react-reconciler/src/ReactFiberCommitWork.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -164,20 +164,20 @@ export default function<T, P, I, TI, HI, PI, C, CC, CX, PL>(
164164
): void {
165165
switch (finishedWork.tag) {
166166
case ClassComponent: {
167-
const instance = finishedWork.stateNode;
168167
if (finishedWork.effectTag & Snapshot) {
169168
if (current !== null) {
170169
const prevProps = current.memoizedProps;
171170
const prevState = current.memoizedState;
172171
startPhaseTimer(finishedWork, 'getSnapshotBeforeUpdate');
172+
const instance = finishedWork.stateNode;
173173
instance.props = finishedWork.memoizedProps;
174174
instance.state = finishedWork.memoizedState;
175175
const snapshot = instance.getSnapshotBeforeUpdate(
176176
prevProps,
177177
prevState,
178178
);
179179
// TODO Warn about undefined return value
180-
current.snapshot = snapshot != null ? snapshot : null;
180+
instance.__reactInternalSnapshotBeforeUpdate = snapshot;
181181
stopPhaseTimer();
182182
}
183183
}
@@ -222,7 +222,11 @@ export default function<T, P, I, TI, HI, PI, C, CC, CX, PL>(
222222
startPhaseTimer(finishedWork, 'componentDidUpdate');
223223
instance.props = finishedWork.memoizedProps;
224224
instance.state = finishedWork.memoizedState;
225-
instance.componentDidUpdate(prevProps, prevState, current.snapshot);
225+
instance.componentDidUpdate(
226+
prevProps,
227+
prevState,
228+
instance.__reactInternalSnapshotBeforeUpdate,
229+
);
226230
stopPhaseTimer();
227231
}
228232
}

0 commit comments

Comments
 (0)