(finishedWork)
| 22998 | } |
| 22999 | |
| 23000 | function commitBeforeMutationEffectsOnFiber(finishedWork) { |
| 23001 | var current = finishedWork.alternate; |
| 23002 | var flags = finishedWork.flags; |
| 23003 | |
| 23004 | if ((flags & Snapshot) !== NoFlags) { |
| 23005 | setCurrentFiber(finishedWork); |
| 23006 | |
| 23007 | switch (finishedWork.tag) { |
| 23008 | case FunctionComponent: |
| 23009 | case ForwardRef: |
| 23010 | case SimpleMemoComponent: |
| 23011 | { |
| 23012 | break; |
| 23013 | } |
| 23014 | |
| 23015 | case ClassComponent: |
| 23016 | { |
| 23017 | if (current !== null) { |
| 23018 | var prevProps = current.memoizedProps; |
| 23019 | var prevState = current.memoizedState; |
| 23020 | var instance = finishedWork.stateNode; // We could update instance props and state here, |
| 23021 | // but instead we rely on them being set during last render. |
| 23022 | // TODO: revisit this when we implement resuming. |
| 23023 | |
| 23024 | { |
| 23025 | if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) { |
| 23026 | if (instance.props !== finishedWork.memoizedProps) { |
| 23027 | error('Expected %s props to match memoized props before ' + 'getSnapshotBeforeUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentNameFromFiber(finishedWork) || 'instance'); |
| 23028 | } |
| 23029 | |
| 23030 | if (instance.state !== finishedWork.memoizedState) { |
| 23031 | error('Expected %s state to match memoized state before ' + 'getSnapshotBeforeUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.state`. ' + 'Please file an issue.', getComponentNameFromFiber(finishedWork) || 'instance'); |
| 23032 | } |
| 23033 | } |
| 23034 | } |
| 23035 | |
| 23036 | var snapshot = instance.getSnapshotBeforeUpdate(finishedWork.elementType === finishedWork.type ? prevProps : resolveDefaultProps(finishedWork.type, prevProps), prevState); |
| 23037 | |
| 23038 | { |
| 23039 | var didWarnSet = didWarnAboutUndefinedSnapshotBeforeUpdate; |
| 23040 | |
| 23041 | if (snapshot === undefined && !didWarnSet.has(finishedWork.type)) { |
| 23042 | didWarnSet.add(finishedWork.type); |
| 23043 | |
| 23044 | error('%s.getSnapshotBeforeUpdate(): A snapshot value (or null) ' + 'must be returned. You have returned undefined.', getComponentNameFromFiber(finishedWork)); |
| 23045 | } |
| 23046 | } |
| 23047 | |
| 23048 | instance.__reactInternalSnapshotBeforeUpdate = snapshot; |
| 23049 | } |
| 23050 | |
| 23051 | break; |
| 23052 | } |
| 23053 | |
| 23054 | case HostRoot: |
| 23055 | { |
| 23056 | { |
| 23057 | var root = finishedWork.stateNode; |
no test coverage detected
searching dependent graphs…