#json #reactjs #react-native
#json #reactjs #react-native
Вопрос:
Я пытаюсь получить JSON из API. Я знаю, что API работает, потому что я могу получить данные, позвонив через Postman, но когда я пытаюсь получить данные в своем приложении, я получаю «Ошибка синтаксического анализа JSON: неожиданный EOF».
Используемый вызов API в основном идентичен другому вызову, выполненному в другом месте приложения для другой конечной точки, поэтому я понятия не имею, что может вызвать проблему.
Код:
const DrinkPopup = (props) => {
const [drinkDetails,setDrinkDetails] = useState([])
fetch('https://www.thecocktaildb.com/api/json/v1/1/lookup.php?i=' props.drink)
.then((response) => response.json())
.then((json) => setDrinkDetails(json.drinks))
.catch((error) => console.error(error))
return(
<Modal isVisible={props.modalVisible}
onBackdropPress={()=>{props.setModalVisible(false)}} //allows closing modal by tapping outside it or back button
onBackButtonPress={()=>{props.setModalVisible(false)}}
animationIn={"slideInUp"}>
<View style={styles.infocard}>
<View style={styles.titleBox}>
<Text style={styles.header}>{drinkDetails.idDrink}</Text>
</View>
</View>
</Modal>
)
Ответ №1:
Попробуйте этот способ, например
<Text style={styles.header}>
{drinkDetails amp;amp; drinkDetails.idDrink
? JSON.stringify(drinkDetails.idDrink)
: "No record"}
</Text>
Комментарии:
1. Я получаю сообщение об ошибке no record, но я знаю, что этого не должно быть. Элемент, который должен искать код, определенно существует.
2. @Swystem что вы получаете в ответ
json.drinks
?3. Кажется, что выборка выполняется слишком часто, но она дает мне любой выбранный напиток, просто повторяется.
Ответ №2:
Попробуйте поместить вашу выборку в async
функцию и вызвать ее, вероятно, в useEffect
перехватчике.
Комментарии:
1. Есть ли какая-либо доступная документация, чтобы показать мне, как это сделать? Я пытаюсь разобраться в этом, но, должно быть, я ищу неправильные термины. Я все еще новичок в React Native.