在 Header 组件 Next.js React 中渲染道具
Render Props inside of Header Component Next.js React
我的 React.js 应用程序中有一个组件,使用 Next.js - 这个组件是 Header 我正在使用这个在我的布局中获取每个 header 元素。
我想要做的是在其中获取一个 API 请求,这样我就可以在 header 中呈现菜单项。API 是 return进入菜单object。
这是我的代码。
import fetch from 'isomorphic-unfetch'
import React, { Component } from "react";
import Link from 'next/link';
import { Config } from "../config.js";
class Header extends Component {
static async getInitialProps() {
const menuRes = await fetch(
`${Config.apiUrl}/wp-json/menus/v1/menus/header-menu`
);
const menu = await postsRes.json();
return {menu}
}
render() {
console.log(this.props);
return (
<div>
213
</div>
);
}
}
export default Header
我还在学习 React,所以如果我 100% 错了,请原谅。只是道具没有 return 任何东西:
this.props
我没能在网上找到任何人谈论这个,否则我很乐意阅读它。显然这适用于 page.js 和 return 我的所有项目。
static async getInitialProps(context) {
const { id } = context.query
const postsRes = await fetch(
`${Config.apiUrl}/wp-json/wp/v2/pages?slug=sample-page`
);
const posts = await postsRes.json();
return {posts}
}
但我不知道为什么它不能在组件内部工作:(
我建议您只需在组件的常规生命周期中获取 componentDidMount 中的数据即可。在这里您可以找到 great diagram 解释 React 生命周期
我建议在 componentWillMount 中获取您的数据,然后使用您的组件状态来管理它。
在组件顶部创建一个构造函数,设置默认值,然后在检索数据时设置状态并呈现它。
道具是您发送给组件的东西,状态是您用来管理组件内数据的东西。
上面的两个答案都很棒!!真的很有帮助。这是我使用的代码:
constructor() {
super();
this.state = { data: [] };
}
componentDidMount() {
fetch(`${Config.apiUrl}/wp-json/menus/v1/menus/header-menu`)
.then(res => res.json())
.then(json => this.setState({ data: json }));
}
以防万一以后有人遇到这个:)
我的 React.js 应用程序中有一个组件,使用 Next.js - 这个组件是 Header 我正在使用这个在我的布局中获取每个 header 元素。
我想要做的是在其中获取一个 API 请求,这样我就可以在 header 中呈现菜单项。API 是 return进入菜单object。
这是我的代码。
import fetch from 'isomorphic-unfetch'
import React, { Component } from "react";
import Link from 'next/link';
import { Config } from "../config.js";
class Header extends Component {
static async getInitialProps() {
const menuRes = await fetch(
`${Config.apiUrl}/wp-json/menus/v1/menus/header-menu`
);
const menu = await postsRes.json();
return {menu}
}
render() {
console.log(this.props);
return (
<div>
213
</div>
);
}
}
export default Header
我还在学习 React,所以如果我 100% 错了,请原谅。只是道具没有 return 任何东西:
this.props
我没能在网上找到任何人谈论这个,否则我很乐意阅读它。显然这适用于 page.js 和 return 我的所有项目。
static async getInitialProps(context) {
const { id } = context.query
const postsRes = await fetch(
`${Config.apiUrl}/wp-json/wp/v2/pages?slug=sample-page`
);
const posts = await postsRes.json();
return {posts}
}
但我不知道为什么它不能在组件内部工作:(
我建议您只需在组件的常规生命周期中获取 componentDidMount 中的数据即可。在这里您可以找到 great diagram 解释 React 生命周期
我建议在 componentWillMount 中获取您的数据,然后使用您的组件状态来管理它。
在组件顶部创建一个构造函数,设置默认值,然后在检索数据时设置状态并呈现它。
道具是您发送给组件的东西,状态是您用来管理组件内数据的东西。
上面的两个答案都很棒!!真的很有帮助。这是我使用的代码:
constructor() {
super();
this.state = { data: [] };
}
componentDidMount() {
fetch(`${Config.apiUrl}/wp-json/menus/v1/menus/header-menu`)
.then(res => res.json())
.then(json => this.setState({ data: json }));
}
以防万一以后有人遇到这个:)