繁体   English   中英

如何将属性传递给无状态/功能组件?

[英]How do I pass properties to stateless/functional components?

在我的核心index.js我正在渲染这样的组件:

<TestBundle lang={lang} />

我想在该组件中拾取lang属性。

为什么在<TestBundle />渲染变量时,它为什么未定义?

const TestBundle = (lang) => (
  <section className='relative-container'>
    <div className='row'>
        {lang}
    </div>
  </section>
)

export default TestBundle

================================================== ========


所以建议在这里修改

const TestBundle = (props) => {
  const lang = props.lang
  // ...

//不同的例子

const TestBundle = (props) => {
    const lang = props.lang

      <section className='relative-container'>
        <div className='row'>
            {lang}
        </div>
      </section>
}

export default TestBundle

-但这带来了错误

./src/components/Services/TestBundle.js
Module build failed: SyntaxError: D:/wamp/www/project/react/src/components/Services/TestBundle.js: Unexpected token (5:2)

  3 | 
  4 | const TestBundle= (props) => {
> 5 |   const lang = props.lang
    |   ^
  6 |   
  7 |   <section className='relative-container'>
  8 |     

lang是一个属性。 您可以破坏:

const TestBundle = ({ lang }) => (

或手动执行:

const TestBundle = (props) => {
  const lang = props.lang
  // ...

基本的无状态组件; 所有文档中都涉及:传递给无状态/功能组件的参数是组件属性。

我相信当您将lang传递给TestBundle时,您需要对其进行解构,如下所示:

const TestBundle = ({lang}) => (

您还可以像下面这样在组件外部(在组件下方)验证道具:

TestBundle.propTypes = {
  lang: React.PropTypes.string.isRequired
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM