很难弄清楚为什么我无法访问我应该访问的变量。
我有一个构造函数
constructor(props) {
super(props);
this.state = {
endpoint:props.url
};
console.log(props.url);// Prints url as intended
console.log(this.state.endpoint);// Also prints as intended
}
现在你会认为这只会延续到componentDidMount,但它不会?我以为构造函数应该用状态启动一些东西?
componentDidMount(){
fetch(this.state.endpoint).then(etc....)
// this fails. If I do console.log(this.state.endpoint) I get undefined.
}
如何让端点在fetch函数中工作?
答案 0 :(得分:1)
我真的没有看到你的代码不起作用的任何理由,但试试这个......
class MyComponent extends React.Component {
constructor(props){
super(props)
}
componentDidMount(){
fetch(this.props.url)
.then( response => console.log(response) )
}
}
答案 1 :(得分:0)
只应在已安装的组件或插入dom的组件上设置状态。如果您未在视图中使用状态,则无法保证何时正确更新。你为什么把它设置为状态?只需创建一个变量。
编辑:或者为什么不在componentdidmount中使用this.props.url?