自M91起,SharedArrayBuffer将需要跨域隔离,大约在2021年5月
通过创建npx create-react-app
React应用程序并运行它时,DevTools(Chrome 88 和 89)中会弹出警告:
scheduler.development.js:298 [Deprecation] 自 M91 起,即 2021 年 5 月左右,SharedArrayBuffer 将需要跨源隔离。有关更多详细信息,请参阅
https://developer.chrome.com/blog/enabling-shared-array-buffer/。
环境
current version of create-react-app: 4.0.1
running from /Users/mahdi/.npm/_npx/25767/lib/node_modules/create-react-app
Binaries:
Node: 14.15.4 - ~/.nvm/versions/node/v14.15.4/bin/node
Yarn: 1.22.4 - /usr/local/bin/yarn
npm: 6.14.10 - ~/.nvm/versions/node/v14.15.4/bin/npm
Browsers:
Chrome: 88.0.4324.96
Edge: 87.0.664.66
Firefox: 84.0
Safari: 14.0.2
npmPackages:
react: ^17.0.1 => 17.0.1
react-dom: ^17.0.1 => 17.0.1
react-scripts: Not Found
npmGlobalPackages:
create-react-app: Not Found
重现步骤
npx create-react-app myapp
cd myapp && npm start Open
- Chrome 88 或 89 中的http://localhost:3000,常规或隐身模式
- 打开 DevTools:显示警告
有解决此警告的建议吗?
回答
将react
和react-dom
版本更新17.0.1
为 ==>17.0.2
可以解决此问题。
您只需要npm update
在命令提示符或 bash 中运行,希望您会看到package.json
文件中的更改。(yarn upgrade react --latest
并且yarn upgrade react-dom --latest
如果你想升级到坚持到package.json
)
这是应用更新后来自我的应用程序的 git 报告:
- We still get this error even though we've updated to 17.0.2 for react and react-dom and have restarted dev server
- I too can still the error after updating 17.0.2 and restarting the server
回答
如警告所示,Chrome 将需要从版本 91 开始跨域隔离才能使用 SharedArrayBuffer。据我所知,除了等待反应更新之外,您无法解决警告。
其他人也有这个问题,你可以在这里和这里看到
该问题已在此拉取请求中修复,但尚未发布。
编辑:它现在在 react 的 17.0.2 版中得到修复。
回答
实际上更新react-dom
到最新版本后我解决了这个问题,react
单独没有解决它:
npm i react@latest react-dom@latest
或者
yarn add react@latest react-dom@latest
回答
对于那些还没有准备好升级到 v17 的人(由于其他遗留库),一个简单的解决方法是将以下代码放在你的任何部分 index.html
<script>
// See https://github.com/facebook/react/issues/20829#issuecomment-802088260
if (!crossOriginIsolated) SharedArrayBuffer = ArrayBuffer;
</script>
THE END
二维码