React native 如何将响应传递给react native RNPickerSelect Functional components
好的,这是一个非常简单的操作,我想做我只想用从http请求接收的数据填充一个RNPickerSelect,问题是我正在学习如何使用react native,我有点困惑。这是我的代码:React native 如何将响应传递给react native RNPickerSelect Functional components,react-native,React Native,好的,这是一个非常简单的操作,我想做我只想用从http请求接收的数据填充一个RNPickerSelect,问题是我正在学习如何使用react native,我有点困惑。这是我的代码: import React,{useState} from 'react'; import RNPickerSelect from 'react-native-picker-select'; import { View, Text, Button } from 'react-native'; const g
import React,{useState} from 'react';
import RNPickerSelect from 'react-native-picker-select';
import { View, Text, Button } from 'react-native';
const getData = () => {
const xhr = new XMLHttpRequest();
xhr.open('GET','http://3.86.214.41/api/v1/web/activities');
xhr.responseType = 'json'
xhr.onload = () => {
const data = xhr.response
for (var i = 0; i < data.length; i++) {
alert(data[i].id + data[i].name);
}
}
xhr.send();
}
const Actividad = () => {
const [activityId,setActivityId] = useState('');
return (
<View>
<Text>Selecciona Actividad</Text>
<RNPickerSelect
onValueChange={activityId => setActivityId(activityId)}
items={
[ {label: 'actividad', value: '1'}]
}
/>
<Button onPress={getData} title="Get Activities" />
</View>
);
};
export default Actividad;
import React,{useState}来自“React”;
从“反应本机选择器选择”导入RNPickerSelect;
从“react native”导入{视图、文本、按钮};
常量getData=()=>{
const xhr=new XMLHttpRequest();
xhr.open('GET','http://3.86.214.41/api/v1/web/activities');
xhr.responseType='json'
xhr.onload=()=>{
常量数据=xhr.response
对于(变量i=0;i{
常量[activityId,setActivityId]=useState(“”);
返回(
活动选择
setActivityId(activityId)}
项目={
[{label:'actividad',value:'1'}]
}
/>
);
};
导出默认活动;
您可以看到我迭代的响应,只是为了确保数据在那里,所以我想使用该数据创建项目列表
从getData功能到RNPickerSelect组件内的items道具,希望我足够清楚,因此,如果有人可以帮助我,我将投票支持您的答案,非常感谢。很抱歉,如果这是一个问题,我还找不到一个清晰易懂的答案。谢谢。您需要为组件添加一个额外的状态
const [items,setItems] = useState([ {label: 'actividad', value: '1'}]);
然后将此状态传递给您的RNPickerSelect:
<RNPickerSelect
onValueChange={activityId => setActivityId(activityId)}
items={items}
/>
现在只需将这个函数传递给getData函数,这样您就可以根据
<Button onPress={() => getData(onEndGetData)} title="Get Activities" />
如果我把所有这些放在一起,我会非常感谢你的工作:`我纠正了我的打字错误,你觉得这有用吗?还是你有麻烦了?
<Button onPress={() => getData(onEndGetData)} title="Get Activities" />
const getData = (onEndGetData) => {
...
xhr.onload = () => {
onEndGetData(xhr.response);
}