我认为这是一个简单的问题,但目前尚不清楚最佳解决方案。
除了运行我的React App,我还需要异步和独立地运行脚本来(例如)将用户指纹添加到我的数据库中。
此脚本的结果不会影响应用程序,但由于我正在使用App函数,因此我需要将该脚本包含在App中。
我可以想到两种方法:
1)在index.js
内
import { add_fingerprint } from './utils/Functions';
add_fingerprint();
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById('root')
);
2)在App
组件内部:
import { add_fingerprint } from './utils/Functions';
class App extends Component {
constructor(props) {
super(props)
}
componentDidMount(){
add_fingerprint();
}
render () {
return (<div>My app</div>)
}
}
add_fingerprint
功能:
export function add_fingerprint () {
import axios from 'axios';
import Fingerprint2 from 'fingerprintjs2';
setTimeout(function () {
Fingerprint2.get(function (components) {
//axios call to add to my database
})
}, 500)
}
最正确的方法是什么?
答案 0 :(得分:0)
第二点是正确的。
如果您需要从远程端点加载数据,这是实例化网络请求的好地方。 https://reactjs.org/docs/react-component.html#componentdidmount