Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从子组件值到父组件显示_Javascript_Reactjs_React Native - Fatal编程技术网

Javascript 从子组件值到父组件显示

Javascript 从子组件值到父组件显示,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我有两个组件子组件和父组件,这个子组件的角色是星级评级,现在我想从子组件中获取要显示在父组件中的值,并使用来自子组件的数据 添加:我使用Redux和react navigation 2.0 子组件 import React, { Component } from 'react'; //import react in our code. import { StyleSheet, View, Platform, Text, Image, TouchableOpacity,

我有两个组件子组件父组件,这个子组件的角色是星级评级,现在我想从子组件中获取要显示在父组件中的值,并使用来自子组件的数据

添加:我使用Redux和react navigation 2.0

子组件

import React, { Component } from 'react';
//import react in our code. 
import {
  StyleSheet,
  View,
  Platform,
  Text,
  Image,
  TouchableOpacity,
} from 'react-native';


class Rate extends Component {
  constructor() {
    super();
    this.state = {
      Default_Rating: 0,
      //To set the default Star Selected
      Max_Rating: 5,
      //To set the max number of Stars
    };
    //Filled Star. You can also give the path from local
    this.Star = '../../assets/star_filled.png';
    //Empty Star. You can also give the path from local
    this.Star_With_Border = '../../assets/star_corner.png';
  }
  UpdateRating(key) {
    this.setState({ Default_Rating: key });
    //Keeping the Rating Selected in state
    this.props.onStarRating(this.state.Default_Rating)
  }

  render() {
    let React_Native_Rating_Bar = [];
    //Array to hold the filled or empty Stars
    for (var i = 1; i <= this.state.Max_Rating; i++) {
      React_Native_Rating_Bar.push(
        <TouchableOpacity
          activeOpacity={0.7}
          key={i}
          onPress={this.UpdateRating.bind(this, i)}>
          <Image
            style={styles.StarImage}
            source={
              i <= this.state.Default_Rating
                ?
                require('../../assets/star_filled.png')
                : require('../../assets/star_corner.png')
            }
          />
        </TouchableOpacity>
      );
    }
    return (
      <View style={styles.MainContainer}>
        {/*View to hold our Stars*/}
        <View style={styles.childView}>{React_Native_Rating_Bar}</View>
        <Text style={styles.textStyle}>
          {/*To show the rating selected*/}
          {this.state.Default_Rating} / {this.state.Max_Rating}
        </Text>
      </View>
    );
  }
}

export default Rate;
import React, { Component } from 'react';
import { connect } from 'react-redux';
import { Container} from 'native-base';
import Rate from '../components/Rate'


class Leads extends Component {
  constructor(props) {
    super(props);

    this.state = {

    }
  }

  //RENDER MAIN COMPONENT
  render() {

    return (
      /* MAIN VIEW COMPONENT */
      <Container>
          <Rate  />
      </Container>
    )
  }
}

const mapStateToProps = (state) => ({

})
export default connect(mapStateToProps)(Leads);
import React,{Component}来自'React';
//在我们的代码中导入react。
进口{
样式表,
看法
平台,
文本,
形象,,
可触摸不透明度,
}从“反应本机”;
类速率扩展组件{
构造函数(){
超级();
此.state={
默认_评级:0,
//将默认星形设置为选中
最高评级:5,
//设置最大星星数的步骤
};
//填充星。您也可以从本地
this.Star='../assets/Star_filled.png';
//空星。您也可以从本地指定路径
this.Star_With_Border='../assets/Star_corner.png';
}
更新(键){
this.setState({Default_Rating:key});
//在状态中保持选定的分级
this.props.onStarRating(this.state.Default_Rating)
}
render(){
让我们作出反应(本地评级栏=[];
//阵列以容纳填充的或空的星星

对于(var i=1;i要从子组件到父组件获取数据,您可以将一个函数从父组件传递到子组件。然后,一旦从子组件调用该函数,您就可以更新父组件中的数据

家长:

handleChange = data =>{
   this.setState({ data: data })
}

render(){
   return(
      <Child
         handleChange={this.handleChange}
      >
   )
}
this.props.handleChange("your data")