Problem:
You want to use the async await feature in the render function of a React component to perform asynchronous operations, such as fetching data from a backend API. However, you encounter issues with the await keyword not being recognized within the render function.
Solution:
While you can use the async keyword in a class component's render method, it's not recommended due to performance considerations. Instead, it's better to separate data fetching and display into two distinct components:
Parent Component (Data Fetching):
<code class="javascript">class ParentComponent extends React.Component { constructor() { super(); this.state = { data: null }; } componentDidMount() { fetch('/api/data') .then(res => res.json()) .then(data => this.setState({ data })); } render() { return this.state.data ? <ChildComponent data={this.state.data} /> : null; } }</code>
Child Component (Data Display):
<code class="javascript">const ChildComponent = ({ data }) => { return ( <table> <tbody> {data.map((item, index) => ( <tr key={index}> <td>{item.name}</td> </tr> ))} </tbody> </table> ); };</code>
Explanation:
Note:
For React hooks-based components, you can use the useEffect hook to fetch data and update the component state, separating the data fetching logic from the render function.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!