使用 Axios/React Native 处理 PHP 响应
Posted
技术标签:
【中文标题】使用 Axios/React Native 处理 PHP 响应【英文标题】:Handling PHP response with Axios/React Native 【发布时间】:2022-01-10 07:35:52 【问题描述】:我是 React Native 初学者,请原谅基本问题。我在使用 axios get 处理从 php 返回的 json 时遇到问题。
我的 php 返回(已尝试使用和不使用 headers 部分,也尝试使用/不使用 json_encode):
<?php
$json ="[
id: 1,
title: 'List Item One',
description: 'test1'
,
id: 2,
title: 'List Item Two',
description: 'test2'
]";
header('Content-Type: application/json; charset=utf-8');
echo json_encode($json);
下面是我的 react native 函数(我要开始工作的部分已被注释掉)
const [messages, setMessages] = useState([]);
useEffect(() =>
loadMessages();
, []);
const loadMessages = async () =>
let res = await axios.get('https://example.com/test_messages.php');
//setMessages(res.data);
console.log(res.data);
return (
<Screen style=styles.screen>
<FlatList
data=messages
keyExtractor=message => message.id.toString()
renderItem=(item) => (
console.log 似乎工作并返回:
[
id: 1,
title: 'List Item One',
description: 'test1'
,
id: 2,
title: 'List Item Two',
description: 'test2'
]
但是当我尝试改用注释部分时,我得到了这个错误:
“未定义不是对象('评估 message.id.toString')”
似乎只是在格式化输出,因为 console.log 看起来不错。此外,当我将数组硬编码为变量并在 useState 函数中使用它时,它也可以正常工作。
【问题讨论】:
【参考方案1】:这个json的格式可能不正确,你可以在https://jsonlint.com/查看。正确的格式应该像下面JSON.stringify
的输出
【讨论】:
我试过没有json_encode,然后又试了一次,没用。也试过同时删除 json_encode 和 headers,没用。 删除json_encode
后出现什么错误?
和以前一样
我也试过 JSON.stringify 但会再试一次
解决了!谢谢!以上是关于使用 Axios/React Native 处理 PHP 响应的主要内容,如果未能解决你的问题,请参考以下文章
将Array / Object作为参数传递给Axios React native
处理 axios react-redux 应用程序中的 401 未授权错误
create-react-app创建react项目,使用axios跨域
使用Axios,React.js和Spring进行简单的发布请求
如何在 Cookie 上指定 SameSite 和 Secure(使用 axios/React/Node Express)