Получить строку мудрое состояние внутри flatlist в реагировать родной - PullRequest
0 голосов
/ 28 августа 2018

У меня есть плоский список, а внутри плоский. У меня есть радиоформ. У меня есть 2 пункта радиоформ «Р» и «А» Вот изображение этого enter image description here

Здесь мне нужно опубликовать выбранный элемент. Моя проблема в том, что если я выбираю P, тогда все значения строки равны P, когда я публикую, и если я выбираю A, все значения строки равны A. У меня есть логика, что я должен получить мудрое состояние строки, чтобы получить сообщение. Вот пока у меня есть код

      export default class attendancetest extends Component {
       constructor(props) {
            super(props);
             this.state = {
             data: [],
             rollno:"",
             typeofattendance:1,

             animating: true
           };
        }
           componentWillMount() {
           this.fetchData();
           }
        fetchData = async () => {
        const response = await 
        fetch("http://192.168.1.208:8082/students/all");
            const json = await response.json();
            this.setState({ data: json });
               };
              closeActivityIndicator = () =>
             setTimeout(
         () =>
    this.setState({
      animating: false
    }),
  4000
);

           componentDidMount = () => this.closeActivityIndicator();
            render() {
           const animating = this.state.animating;
           return (
           <View
          style={--Style Code 
           }
          >
    <Logo />

    <Text style={styles.titleText1}>
      Test                           Section A Class 11th
    </Text>
    <ActivityIndicator
        --Some Code 
    />

    <View style={styles.container}>
      <Text style={styles.titleText}>Roll & Name                          Present Or Absent</Text>
    </View>
    <FlatList

      data={this.state.data}
     // rollno={this.state.data.rollno}
      showsVerticalScrollIndicator={false}
      renderItem={({ item,index }) =>  (
        <View
          style=--Style Code 
        >
          <Text
            style=--style code
          >
            {item.rollno}
            --
            {item.name}
          </Text>

          <RadioForm
            animation={true}
            buttonColor={"#C2E3A9"}
            index={1}
            formHorizontal={true}
            labelHorizontal={true}
            buttonStyle={{ marginRight: 20 }}
            radioStyle={{ paddingRight: 20 }}
            //  labelHorizontal={false}
            style={{
              flex: 1,
              paddingRight: 20,
              flexDirection: "row",
              width: 30
            }}
            radio_props={radio_props}
            initial={this.state.typeofattendance}

           // initial={value => {
             // this.setState({ value: value });}}
            isSelected = {true}
           // radio_props

            onPress={value => { index=
              this.setState({ typeofattendance: value });
            }}
            ItemSeparatorComponent={this.renderSeparator}
          />


        </View>

      )}
      // keyExtractor={(x, i) => i}

      keyExtractor={(item, index) => index.toString()}

    />
     <Button title="Submit" onPress={() => this.insert()} />
  </View>
);
                }


          insert = () => {
           var numstudent = this.state.data.length;
           var datatest=[]
           var data1;
           for(var i=0;i<numstudent;i++){
            data1={"rollno": this.state.data[i].rollno, "typeofattendence": 
            this.state.typeofattendance};
           datatest.push(data1);
             }
             console.log(datatest);
            }
            }

Вот эту часть я могу получить от P до A, но не в конкретном ряду

              </View>
            onPress={value => {
              this.setState({ typeofattendance: value });
              }}

Как получить рядовое состояние, попадающее в плоский список. Здесь, в этой части, я проверяю пункт проверки радиокнопок нажатием кнопки

    var numstudent = this.state.data.length;
    var datatest=[]
    var data1;
    for(var i=0;i<numstudent;i++){
       data1={"rollno": this.state.data[i].rollno, "typeofattendence": this.state.typeofattendance};
       datatest.push(data1);
      }
   //   console.log(datatest);
...