복붙노트

[REACTJS] 어떻게 선택기에서 JSON의 동적 값을 얻기 위해 반작용 네이티브

REACTJS

어떻게 선택기에서 JSON의 동적 값을 얻기 위해 반작용 네이티브

해결법


  1. 1.당신은 당신의 코드에서 몇 가지 문제를 가지고

    당신은 당신의 코드에서 몇 가지 문제를 가지고

    나는 당신의 코드를 일부 변경 한, 이것은 당신이 간식 https://snack.expo.io/@andypandy/picker-example에서 여기에서 볼 수있는 작업 예입니다

    import * as React from 'react';
    import { Text, View, StyleSheet, Alert, Picker } from 'react-native';
    import { Constants } from 'expo';
    
    export default class App extends React.Component {
    
      // add a selectValue to your state to stop the overwriting
      state = {
        PickerValueHolder: [],
        selectedValue: ''
      }
    
      componentDidMount() {
        // remove the return 
       fetch('http://1/Dsenze/userapi/inventory/viewinventorytype', {  
            method: 'POST',
            headers: {
              'Accept': 'application/json',
              'Content-Type': 'application/json',
            },
            body: JSON.stringify({
              "username" :"admin",
              "password" :"admin"
            })
          }).then((response) => response.json())
          .then((responseJson) => {
            // use the inventoryTypeData as it is already an array
            let PickerValueHolder = responseJson.inventoryTypeData;
            this.setState({ PickerValueHolder }); // Set the new state
          })
          .catch((error) => {
            console.error(error);
          });
        }
    
      GetPickerSelectedItemValue=()=>{
        Alert.alert(this.state.PickerValueHolder);
      }
    
      render() {
    
    
        return (
          <View style={styles.container}>
            {<Picker
                    selectedValue={this.state.selectedValue}
                    onValueChange={(itemValue, itemIndex) => this.setState({selectedValue: itemValue})} >
                    { this.state.PickerValueHolder.map((item, key)=>
                      <Picker.Item label={item.name} value={item.name} key={key} />
                    )}
                  </Picker>}
          </View>
        );
      }
    }
    
    const styles = StyleSheet.create({
      container: {
        flex: 1,
        justifyContent: 'center',
        paddingTop: Constants.statusBarHeight,
        backgroundColor: '#ecf0f1',
        padding: 8,
      }
    });
    

  2. 2.

    import * as React from 'react';
    import { Text, View, StyleSheet, Alert, Picker } from 'react-native';
    import { Constants } from 'react-native';
    
    export default class AddInventory extends React.Component {
    
      // add a selectValue to your state to stop the overwriting
      state = {
        PickerValueHolder: [],
        selectedValue: ''
      }
    
      componentDidMount() {
        // remove the return 
       fetch('http:///Dsenze/userapi/inventory/viewinventorytype', {  
            method: 'POST',
            headers: {
              'Accept': 'application/json',
              'Content-Type': 'application/json',
            },
            body: JSON.stringify({
              "username" :"admin",
              "password" :"admin"
            })
          }).then((response) => response.json())
          .then((responseJson) => {
            // use the inventoryTypeData as it is already an array
            let PickerValueHolder = responseJson.inventoryTypeData;
            this.setState({ PickerValueHolder }); // Set the new state
          })
          .catch((error) => {
            console.error(error);
          });
        }
    
      GetPickerSelectedItemValue=()=>{
        Alert.alert(this.state.PickerValueHolder);
      }
    
      render() {
    
    
        return (
          <View style={styles.container}>
            {<Picker
                    selectedValue={this.state.selectedValue}
                    onValueChange={(itemValue, itemIndex) => this.setState({selectedValue: itemValue})} >
                    { this.state.PickerValueHolder.map((item, key)=>
                      <Picker.Item label={item.name} value={item.name} key={key} />
                    )}
                  </Picker>}
          </View>
        );
      }
    }
    
    const styles = StyleSheet.create({
      container: {
        flex: 1,
        justifyContent: 'center',
        backgroundColor: '#ecf0f1',
        padding: 8,
      }
    });
    
  3. from https://stackoverflow.com/questions/54784307/how-to-get-json-dynamic-value-in-picker-react-native by cc-by-sa and MIT license