是一个非常重要的概念。
我正在尝试获取用户的地理位置,并以纬度和经度更新状态。我遵循了MDN文档的地理位置API,但是我遇到了一个错误,即使我根据文档对成功进行了定义,即使成功是不确定的。如何使此代码工作?
class App extends React.Component {
state = { latitude: null, longitude: null };
componentDidMount() {
window.navigator.geolocation.getCurrentPosition(
success => this.state.latitude =
success.coords.latitude, this.state.longitude = success.coords.longitude
);
}
render() {
return <div>{this.state.latitude}, {this.state.longitude}</div>;
}
}
此错误在控制台上可能有些混乱,因为该错误实际上不是success
,而是this
引用success
。您未正确分配状态。您必须使用setState
更改状态。您不能直接分配一个新值来更改状态。
class App extends React.Component {
state = { latitude: null, longitude: null };
componentDidMount() {
window.navigator.geolocation.getCurrentPosition(
success => this.setState({ latitude: success.coords.latitude, longitude: success.coords.longitude })
);
}
render() {
return <div>{this.state.latitude}, {this.state.longitude}</div>;
}
}
您可以在此处阅读有关关键字this
的更多信息。了解您是否要在React.js中工作。