React 组件 props 值问题

Posted

技术标签:

【中文标题】React 组件 props 值问题【英文标题】:React component props value issue 【发布时间】:2020-03-27 05:00:42 【问题描述】:

我目前正在学习 React, 我有一个简单的组件,可以呈现简单的纯文本。 我创建了一个小组件,用于从道具中获取简单的纯文本,但我很惊讶。当我在变量上分配一个简单的静态值时,它工作正常,但是当我尝试从道具中获取该值时,它不起作用。

这里是示例 sn-p 代码。

let TextEditor = React.createClass(
  getInitialState: function () 
    var content = "test 2";
    var content = this.props.plainText
    return 
      content: content
    ;
  ,

  render() 
    return (
      <div>
        <Editor
          value=this.state.content
        />
      </div>
    )
  
)

提前感谢您的提示

【问题讨论】:

你在哪里使用getInitialState函数?你能提供整个代码吗? 是的,我肯定会更改上面的代码并提供整个代码。 【参考方案1】:

您可以使用以下代码来达到预期的效果:

class MyComp extends React.Component 
    constructor(props) 
        super(props);
        this.state =  content: this.props.plainText  ;
    
    render() 
        const  content  = this.state;
        return (
            <div>
                <Editor value=content />
            </div>
        );
    

【讨论】:

我在我的项目中使用 ` "react": "15.3.2",` npm 包。此版本可能不支持构造函数。 如果您目前正在“学习反应”,我强烈建议您升级到 16.9.0。尝试在一个很旧的版本上学习一些东西是没有意义的。有很多东西已经/正在被贬值。【参考方案2】:

getInitialState 现在似乎有点过时了。我建议至少研究一下 ES6 的做事方式。最好不要在构造函数中立即将 props 设置为 state,您可以在组件挂载时更新 state。还有其他方法可以将你的 props 放入你的组件中,因此它可以更详细地查看 react 文档。

作为一个基本的 ES6 示例......

class MyComp extends React.Component 
    constructor(props) 
        super(props);
        this.state =  content: '' ;
    

    componentDidMount = () => 
        const  plainText  = this.props;
        this.setState( content: plainText );
    

    render() 
        const  content  = this.state;
        return (
            <div>
                <Editor value=content />
            </div>
        );
    

【讨论】:

我在我的项目中使用 ` "react": "15.3.2",` npm 包。

以上是关于React 组件 props 值问题的主要内容,如果未能解决你的问题,请参考以下文章

关于react子组建state初始化值为父组建传来的props问题

react 子组件获取父组件传来的 props 问题

React组件三大核心属性: state、props、refs

React 功能组件 - 存储从 props 计算的转换值的位置

如何为 React TypeScript 组件上的 props 设置默认值?

react——子组件props字段类型类型限制——默认值设置。