从子组件本身关闭子组件

时间:2017-12-11 07:49:30

标签: reactjs react-native

当用户单击子组件中的关闭按钮时,我想关闭子组件中的子组件。通过将状态从孩子传回父母来尝试,但它不起作用。我在这里做错了什么?

  

class Home extends Component {
  constructor() {
    this.state = {
      visible: true
    }
  {

  closeComponent = () => {
      this.setState({
          visible: false
      });
  }

  render() {
    return (
      <Container>
       {
         this.state.visible &&
         <Child closeComponent={this.closeComponent} />
       }
      </Container>
    )
  }
}
  

import React from 'react';
import { Text, Image } from 'react-native';
import { View, Button } from 'native-base';

import styles from './ChildStyles.js';

export const Child = ({ closeComponent }) => {
  return (
    <View style={styles.Container}>
      <Button style={styles.Btn} onClick={() => closeComponent}>
        <Text style={styles.BtnText}>Close</Text>
      </Button>
    </View>
  );
};

export default Child;

1 个答案:

答案 0 :(得分:1)

子级中arrow function的语法不正确。基于原生的Button也没有onClickonPress处理程序。它应该是

  <Button style={styles.Btn} onPress={() => closeComponent()}>
    <Text style={styles.BtnText}>Close</Text>
  </Button>