值未传递给父组件[重复]

Posted

技术标签:

【中文标题】值未传递给父组件[重复]【英文标题】:Value not passing to Parent component [duplicate] 【发布时间】:2019-01-04 11:48:42 【问题描述】:

我正在尝试通过 props 将值从子组件传递给父组件,其中包含一个函数,但它会引发错误 undefined is not a function(evaluating(this.setstate(search: val)) 请问我做错了什么

class Child extends React.Component 
  do() 
    this.props.value("books");
  
  componentDidMount() 
    this.do();
  
  render() 
    return <Text>yams</Text>;
  


class Parent extends React.Component 
  constructor(props) 
    super(props);
    this.state = 
      search: ""
    ;
  
  handleChange = e => 
    this.props.onUpdate(e.target.value);
    this.setState( search: e.target.value );
  ;
  con(val) 
    this.setState( search: val );
  
  render() 
    return (
      <View>
        <Child value=this.con />
        <Text>this.state.search</Text>" "
      </View>
    );
  

【问题讨论】:

【参考方案1】:

您需要.bind 您的函数才能使用this。在您的构造函数中执行此操作或使用箭头函数。

constructor(props)
    super(props);
    this.state= 
        search: ''
    
    this.con = this.con.bind(this);

con = val =>
    this.setState(search: val);

【讨论】:

【参考方案2】:

con 函数定义为粗箭头函数:

con = (val) => 
    this.setState(search: val);

这会将this 绑定到父类上下文

【讨论】:

以上是关于值未传递给父组件[重复]的主要内容,如果未能解决你的问题,请参考以下文章

将数据从组件传递给父级

将子组件的状态传递给父组件?

如何在反应中将最新状态从子组件传递给父组件

Vue:将多个@click传递给组件[重复]

子组件传递给父组件数据

如何在反应中将子组件的状态数组传递给父组件?