1160
return null;
1161
} else {
1162
// This is a Hoistable Instance
1163
- //
1164
- // We may have props to update on the Hoistable instance. We use the
1165
- // updateHostComponent path becuase it produces the update queue
1166
- // we need for Hoistables.
1167
- updateHostComponent(
1168
- current,
1169
- workInProgress,
1170
- type,
1171
- newProps,
1172
- renderLanes,
1173
- );
1163
+ // We may have props to update on the Hoistable instance.
1164
+ if (diffInCommitPhase && supportsMutation) {
1165
+ const oldProps = current.memoizedProps;
1166
+ if (oldProps !== newProps) {
1167
+ markUpdate(workInProgress);
1168
+ }
1169
+ } else {
1170
+ // We use the updateHostComponent path becuase it produces
1171
+ // the update queue we need for Hoistables.
1172
+ updateHostComponent(
1173
+ current,
1174
+ workInProgress,
1175
+ type,
1176
+ newProps,
1177
+ renderLanes,
1178
+ );
1179
+ }
1180
1181
// This must come at the very end of the complete phase.
1182
bubbleProperties(workInProgress);
1198
const rootContainerInstance = getRootHostContainer();
1199
const type = workInProgress.type;
1200
if (current !== null && workInProgress.stateNode != null) {
1195
- updateHostComponent(
1196
- current,
1197
- workInProgress,
1198
- type,
1199
- newProps,
1200
- renderLanes,
1201
- );
1201
+ if (diffInCommitPhase && supportsMutation) {
1202
+ const oldProps = current.memoizedProps;
1203
+ if (oldProps !== newProps) {
1204
+ markUpdate(workInProgress);
1205
+ }
1206
+ } else {
1207
+ updateHostComponent(
1208
+ current,
1209
+ workInProgress,
1210
+ type,
1211
+ newProps,
1212
+ renderLanes,
1213
+ );
1214
+ }
1215
1216
if (current.ref !== workInProgress.ref) {
1217
markRef(workInProgress);