在 reactjs 中将 localstorage 与 componentDidMount 结合使用
Using localstorage with componentDidMount in reactjs
componentDidMount() {
fetch(this.ApiURL + '/tv/dailyTV?location=' + localStorage.getItem('location'))
.then(res => res.json())
.then(data => {
this.setState({
companyname : data.static.companyname,
companymission : data.static.companymission,
videocount : data.static.videocount,
companyasset : data.static.companyasset
})
})
}
我想使用本地存储中的数据在我的 React 应用程序中获取数据。但是在 localstorage 读取值之前组件渲染所以 localStorage.getItem('location') return null.
试试这个
this.state = {
location : localStorage.getItem('location')
};
componentDidMount() {
fetch(this.ApiURL + '/tv/dailyTV?location=' + this.state.location)
async componentDidMount() {
const loc = await localStorage.getItem('location')
fetch(this.ApiURL + '/tv/dailyTV?location=' + loc)
.then(res => res.json())
.then(data => {
this.setState({
companyname : data.static.companyname,
companymission : data.static.companymission,
videocount : data.static.videocount,
companyasset : data.static.companyasset
})
})
}
使用 async-wait
来实现您的目标。
尝试:
async componentDidMount() {
const location = await localStorage.getItem('location')
if(location) {
fetch(this.ApiURL + '/tv/dailyTV?location=' + location)
.then(res => res.json())
.then(data => {
this.setState({
companyname : data.static.companyname,
companymission : data.static.companymission,
videocount : data.static.videocount,
companyasset : data.static.companyasset
})
})
}
}
在每个组件渲染之前声明一个状态变量...
constructor(props) {
super(props);
this.state = {
location: true
};
}
componentDidMount() {
const location = localStorage.getItem('location');
fetch(this.ApiURL + '/tv/dailyTV?location=' + location)
.then(res => res.json())
.then(data => {
this.setState({
companyname : data.static.companyname,
companymission : data.static.companymission,
videocount : data.static.videocount,
companyasset : data.static.companyasset
})
})
}
componentDidMount() {
fetch(this.ApiURL + '/tv/dailyTV?location=' + localStorage.getItem('location'))
.then(res => res.json())
.then(data => {
this.setState({
companyname : data.static.companyname,
companymission : data.static.companymission,
videocount : data.static.videocount,
companyasset : data.static.companyasset
})
})
}
我想使用本地存储中的数据在我的 React 应用程序中获取数据。但是在 localstorage 读取值之前组件渲染所以 localStorage.getItem('location') return null.
试试这个
this.state = {
location : localStorage.getItem('location')
};
componentDidMount() {
fetch(this.ApiURL + '/tv/dailyTV?location=' + this.state.location)
async componentDidMount() {
const loc = await localStorage.getItem('location')
fetch(this.ApiURL + '/tv/dailyTV?location=' + loc)
.then(res => res.json())
.then(data => {
this.setState({
companyname : data.static.companyname,
companymission : data.static.companymission,
videocount : data.static.videocount,
companyasset : data.static.companyasset
})
})
}
使用 async-wait
来实现您的目标。
尝试:
async componentDidMount() {
const location = await localStorage.getItem('location')
if(location) {
fetch(this.ApiURL + '/tv/dailyTV?location=' + location)
.then(res => res.json())
.then(data => {
this.setState({
companyname : data.static.companyname,
companymission : data.static.companymission,
videocount : data.static.videocount,
companyasset : data.static.companyasset
})
})
}
}
在每个组件渲染之前声明一个状态变量...
constructor(props) {
super(props);
this.state = {
location: true
};
}
componentDidMount() {
const location = localStorage.getItem('location');
fetch(this.ApiURL + '/tv/dailyTV?location=' + location)
.then(res => res.json())
.then(data => {
this.setState({
companyname : data.static.companyname,
companymission : data.static.companymission,
videocount : data.static.videocount,
companyasset : data.static.companyasset
})
})
}