【发布时间】:2021-05-12 15:09:49
【问题描述】:
我是 React Native 的新手。我需要返回 list2 的值来运行程序的其余部分。但它不会返回。我知道这是因为我使用了在其余代码之后运行的 useEffect。但我不知道如何返回变量(list2)。
function contacts_list(data) {
var list = []
var list2 = ''
for(var i=0; i<data.length; i++) {
list.push(data[i]['name'])
list2 = (list2 + "<Picker.Item label= \"" + data[i]['name'] + "\" " + " value= \"" + data[i]['name'] + "\" />")
}
//console.log(list2)
return list2
}
export default function App() {
useEffect(() => {
(async () => {
const { status } = await Contacts.requestPermissionsAsync();
if (status === 'granted') {
const { data } = await Contacts.getContactsAsync({
fields: [Contacts.Fields.Emails],
});
if (data.length > 0) {
contact = data[0];
//console.log(data)
contacts_list(data)
}
}
})();
}, [])
console.log(list2)
【问题讨论】:
-
您在某处有
setState电话吗? -
没有。我没有 setState
-
你为什么不把返回值放在这样的变量中:var variables = contacts_list(data)?
-
那行得通...但我无法从 useEffect 函数中获得价值
标签: reactjs react-native react-hooks expo