【发布时间】:2018-10-03 16:09:59
【问题描述】:
我想在我的 react 应用的根层制作一些道具:
import React from 'react'
import App, { Container } from 'next/app'
export default class MyApp extends App {
static async getInitialProps({ Component, router, ctx }) {
let pageProps = {}
if (Component.getInitialProps) {
pageProps = await Component.getInitialProps(ctx)
}
return { pageProps }
}
state = {
language: "pl"
};
render () {
const { Component, pageProps } = this.props
return (
<Container>
<Component lang={this.state.language} />
</Container>
)
}
}
所以每个新创建的React.Component 都应该继承那些props。但我不确定如何才能得到它们。假设我有另一个组件是<Nav/>。
我不应该能够通过props.lang 在Nav 中获得它吗?
当我尝试时,它显示lang undefined。
【问题讨论】:
-
你试过
props.lang,还是this.props.lang? -
我试过了,它是未定义的。请注意,我尝试在另一个组件中访问它,例如:
const Nav = () => ( <div> {this.props.lang} </div> ),我在想 Nav 继承自 React.Component 它应该得到lang? -
我看到了一个状态定义。如果您希望 this.state.language 成为您认为的样子,您需要致电
this.setState(state);。 -
@HoldOffHunger 仅在我需要更新时才对吗?
-
Hrm,刚刚快速浏览了一下我自己的代码——初始状态设置在
constructor(props),定义为super(); this.state = (somestate);。
标签: javascript reactjs next.js