括号 {} 如何在 promise 对象的 react 中工作
How parentheis {} work in then of promise object in react
我正在使用简单的反应组件。这是代码。
import React from 'react';
export default class UserProfile extends React.Component {
constructor(props) {
super(props);
this.state = {
posts: [],
name: 'ALok'
}
}
componentDidMount()
{
fetch ('https://jsonplaceholder.typicode.com/users')
.then (response => response.json())
.then (res => this.setState({ posts : res}));
}
render() {
return (
<div>
<h1>{this.state.posts.length}</h1>
</div>
)
}
}
此代码有效。
但是如果我尝试在
添加多条指令
componentDidMount()
{
fetch ('https://jsonplaceholder.typicode.com/users')
.then (response => response.json())
.then (res => this.setState({ posts : res}));
像这样
componentDidMount() {
fetch ('https://jsonplaceholder.typicode.com/users')
.then (response => {
// adding multiple line
response.json();
console.log ('Custom Log');
})
.then (res => this.setState({ posts : res}));
}
它停止工作。
它给出了一个错误
Screen shot of the error in chrome
您需要 return 一个承诺作为承诺链的一部分。除此之外,{}
只是正常的 JS 作用域,在这种情况下是函数作用域。您正在隐式 returning undefined
并且在下一个 thenable 中被分配给 res
并保存到状态中。
componentDidMount() {
fetch ('https://jsonplaceholder.typicode.com/users')
.then (response => {
// adding multiple line
console.log ('Custom Log');
return response.json();
})
.then (res => this.setState({ posts : res}));
}
我正在使用简单的反应组件。这是代码。
import React from 'react';
export default class UserProfile extends React.Component {
constructor(props) {
super(props);
this.state = {
posts: [],
name: 'ALok'
}
}
componentDidMount()
{
fetch ('https://jsonplaceholder.typicode.com/users')
.then (response => response.json())
.then (res => this.setState({ posts : res}));
}
render() {
return (
<div>
<h1>{this.state.posts.length}</h1>
</div>
)
}
}
此代码有效。 但是如果我尝试在
添加多条指令componentDidMount()
{
fetch ('https://jsonplaceholder.typicode.com/users')
.then (response => response.json())
.then (res => this.setState({ posts : res}));
像这样
componentDidMount() {
fetch ('https://jsonplaceholder.typicode.com/users')
.then (response => {
// adding multiple line
response.json();
console.log ('Custom Log');
})
.then (res => this.setState({ posts : res}));
}
它停止工作。 它给出了一个错误
Screen shot of the error in chrome
您需要 return 一个承诺作为承诺链的一部分。除此之外,{}
只是正常的 JS 作用域,在这种情况下是函数作用域。您正在隐式 returning undefined
并且在下一个 thenable 中被分配给 res
并保存到状态中。
componentDidMount() {
fetch ('https://jsonplaceholder.typicode.com/users')
.then (response => {
// adding multiple line
console.log ('Custom Log');
return response.json();
})
.then (res => this.setState({ posts : res}));
}