Skip to content

Commit f8cb04b

Browse files
committed
feat: enable strict mode render if reactStrictMode option is true
1 parent 14b0670 commit f8cb04b

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

src/pure.js

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,12 @@ const mountedContainers = new Set()
7777
*/
7878
const mountedRootEntries = []
7979

80+
function strictModeIfNeeded(innerElement) {
81+
return getConfig().reactStrictMode
82+
? React.createElement(React.StrictMode, null, innerElement)
83+
: innerElement
84+
}
85+
8086
function wrapUiIfNeeded(innerElement, wrapperComponent) {
8187
return wrapperComponent
8288
? React.createElement(wrapperComponent, null, innerElement)
@@ -92,7 +98,7 @@ function createConcurrentRoot(
9298
act(() => {
9399
root = ReactDOMClient.hydrateRoot(
94100
container,
95-
wrapUiIfNeeded(ui, WrapperComponent),
101+
strictModeIfNeeded(wrapUiIfNeeded(ui, WrapperComponent)),
96102
)
97103
})
98104
} else {
@@ -138,9 +144,15 @@ function renderRoot(
138144
) {
139145
act(() => {
140146
if (hydrate) {
141-
root.hydrate(wrapUiIfNeeded(ui, WrapperComponent), container)
147+
root.hydrate(
148+
strictModeIfNeeded(wrapUiIfNeeded(ui, WrapperComponent)),
149+
container,
150+
)
142151
} else {
143-
root.render(wrapUiIfNeeded(ui, WrapperComponent), container)
152+
root.render(
153+
strictModeIfNeeded(wrapUiIfNeeded(ui, WrapperComponent)),
154+
container,
155+
)
144156
}
145157
})
146158

0 commit comments

Comments
 (0)