gpt4 book ai didi

reactjs - React 组件中的 onDeviceReady 事件监听器

转载 作者:行者123 更新时间:2023-12-03 13:30:53 25 4
gpt4 key购买 nike

在我的 React 应用程序中,我尝试使用 Cordova 插件 ( cordovo-plugin-device ) 来获取用户的设备版本,如下所示

class LogoHeader extends React.Component {
componentDidMount () {
window.addEventListener('deviceready', this.onDeviceReady)
}
onDeviceReady () {
console.log(device.cordova)
}
render () {
...
}
}

但由于某种原因,deviceready 事件永远不会被触发。我错过了什么吗?有没有更好的方法来监听 React 中的 DOM 事件?

最佳答案

根据Cordova docsthis SO answer您应该在入口文件中添加监听器(可能是 index.js)

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';

const startApp = () => {
console.log(device.cordova)
ReactDOM.render(
<App />,
document.getElementById('root')
);
}

if(!window.cordova) {
startApp()
} else {
document.addEventListener('deviceready', startApp, false)
}

您还可以将 device.cordova 作为 props 传递给 App,以便您可以在其他组件中访问它。

...
ReactDOM.render(
<App device={device
? device.cordova
: null}/>,
document.getElementById('root')
);
...

关于reactjs - React 组件中的 onDeviceReady 事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51739508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com