MCPcopy Create free account
hub / github.com/plotly/dash / commitBeforeMutationEffectsOnFiber

Function commitBeforeMutationEffectsOnFiber

dash/deps/react-dom@18.3.1.js:23039–23118  ·  view source on GitHub ↗
(finishedWork)

Source from the content-addressed store, hash-verified

23037 }
23038
23039 function commitBeforeMutationEffectsOnFiber(finishedWork) {
23040 var current = finishedWork.alternate;
23041 var flags = finishedWork.flags;
23042
23043 if ((flags & Snapshot) !== NoFlags) {
23044 setCurrentFiber(finishedWork);
23045
23046 switch (finishedWork.tag) {
23047 case FunctionComponent:
23048 case ForwardRef:
23049 case SimpleMemoComponent:
23050 {
23051 break;
23052 }
23053
23054 case ClassComponent:
23055 {
23056 if (current !== null) {
23057 var prevProps = current.memoizedProps;
23058 var prevState = current.memoizedState;
23059 var instance = finishedWork.stateNode; // We could update instance props and state here,
23060 // but instead we rely on them being set during last render.
23061 // TODO: revisit this when we implement resuming.
23062
23063 {
23064 if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {
23065 if (instance.props !== finishedWork.memoizedProps) {
23066 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');
23067 }
23068
23069 if (instance.state !== finishedWork.memoizedState) {
23070 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');
23071 }
23072 }
23073 }
23074
23075 var snapshot = instance.getSnapshotBeforeUpdate(finishedWork.elementType === finishedWork.type ? prevProps : resolveDefaultProps(finishedWork.type, prevProps), prevState);
23076
23077 {
23078 var didWarnSet = didWarnAboutUndefinedSnapshotBeforeUpdate;
23079
23080 if (snapshot === undefined && !didWarnSet.has(finishedWork.type)) {
23081 didWarnSet.add(finishedWork.type);
23082
23083 error('%s.getSnapshotBeforeUpdate(): A snapshot value (or null) ' + 'must be returned. You have returned undefined.', getComponentNameFromFiber(finishedWork));
23084 }
23085 }
23086
23087 instance.__reactInternalSnapshotBeforeUpdate = snapshot;
23088 }
23089
23090 break;
23091 }
23092
23093 case HostRoot:
23094 {
23095 {
23096 var root = finishedWork.stateNode;

Callers 1

Calls 7

setCurrentFiberFunction · 0.70
errorFunction · 0.70
resolveDefaultPropsFunction · 0.70
clearContainerFunction · 0.70
resetCurrentFiberFunction · 0.70
addMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…