Javascript Reactjs-setState内部获取的更好解决方案
这个问题基本上解决了,但有点过时了 我试图在提取完成后设置状态。不幸的是,将fetch放入Javascript Reactjs-setState内部获取的更好解决方案,javascript,reactjs,Javascript,Reactjs,这个问题基本上解决了,但有点过时了 我试图在提取完成后设置状态。不幸的是,将fetch放入ComponentDidMount()的基本解决方案没有按我所希望的那样工作(它表明状态未定义),因此我找到了如下解决方案:声明全局变量,将获取的数据分配给此全局变量,然后放入then()dothis.setState()。这是可行的,但我觉得这不是一个完全正确的解决方案 是否有更好/更干净的方法在内部获取设置状态? 下面是我的代码片段: var fetchedData=null; 类主扩展组件{ 状态={
ComponentDidMount()
的基本解决方案没有按我所希望的那样工作(它表明状态未定义),因此我找到了如下解决方案:声明全局变量,将获取的数据分配给此全局变量,然后放入then()
dothis.setState()
。这是可行的,但我觉得这不是一个完全正确的解决方案
是否有更好/更干净的方法在内部获取设置状态?
下面是我的代码片段:
var fetchedData=null;
类主扩展组件{
状态={
数据:“,
};
componentDidMount(){
获取(“某个url”{
证书:“包括”,
})。然后((res)=>{
res.json()
。然后((数据)=>{
fetchedData=数据;
})
.然后(()=>{
if(fetchedData.someData){
this.setState({data:fetchedData.someData});
}
});
});
}
//代码的其余部分
}
试试这个
类主扩展组件{
状态={
数据:“,
};
异步组件didmount(){
let res=wait-fetch(“一些url”,{credentials:“include”});
让data=wait res.json();
if(data.someData){
this.setState({data:data.someData});
}
});
}
//代码的其余部分
}
在这里使用全局变量毫无意义。为什么不在json()
回调中使用setState
?我不知道如何实现这个回调。你能展示一下它的样子吗?不幸的是它不起作用。这是我的基本解决方案,但在某些情况下,它表明状态是未定义的。
class Main extends Component {
constructor(props) {
super(props);
this.state = {
data: ''
}
}
componentDidMount() {
fetch("some-url", {
credentials: "include",
}).then((res) => res.json())
.then(data => this.setState({data}));
}
//rest of code
}