React 'props' 未定义

Posted

技术标签:

【中文标题】React \'props\' 未定义【英文标题】:React 'props' is not definedReact 'props' 未定义 【发布时间】:2020-10-16 05:25:12 【问题描述】:

有人能告诉我为什么没有定义 props 吗?在这段代码中,我需要通过这种方式调用另一个组件,

看看

我是 react 新手,谁能帮帮我?

反应代码如下:

class ViewNotas extends Component 
  constructor(props) 
    super(props);

    this.state = 
      open: [],
      newContact: false,
      edit: [],
      loading: false,
    ;

    this.handleOpen = this.handleOpen.bind(this);
    this.setNewContact = this.setNewContact.bind(this);
  

  setNewContact(set) 
    this.setState(
      newContact: set,
    );
  

  handleOpen(id, isOpen) 
    if (!isOpen) 
      this.setState( open: this.state.open.concat(id) );
     else 
      this.setState(
        open: this.state.open.filter((objectId) => id !== objectId),
      );
    
  

  render() 
    let data = this.props.data;

    return (
      <Modal open=this.props.open visible=this.props.visible>
        <SC.Container>
          <SC.Header>
            <SC.Title>Notas</SC.Title>
            <SC.ButtonPlus onClick=() => props.setNewContact(true)>
              <GoPlus size="24px" color="#FFF" />
            </SC.ButtonPlus>

【问题讨论】:

【参考方案1】:

这一行

<SC.ButtonPlus onClick=() => props.setNewContact(true)>

应该是

<SC.ButtonPlus onClick=() => this.setNewContact(true)>

【讨论】:

【参考方案2】:

问题在于你正在访问 props 上的方法

                              /* change this  */
 <SC.ButtonPlus onClick=() => this.setNewContact(true)>
    <GoPlus size="24px" color="#FFF" />
  </SC.ButtonPlus>

希望这会有所帮助!

【讨论】:

setNewContact 不是作为道具传递的,而是类上的一个方法,所以它只需要是this. setNewContact(true)

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

Props 未定义 React js

React-router TypeError:_this.props.history 未定义

React Router this.props.location始终未定义

this.props 在 React 组件中的箭头函数中显示为未定义

reducer.state.props 在嵌套动作 react/redux 中未定义

React Router:替换位置状态然后返回,位置状态未定义