Laravel api 使用 paginate() 不适用于 React Native
Laravel api with paginate() does not work with reach native
我有一个 laravel api,我在其中添加了 ->paginate()
,这样我就可以分页,并通过在我的 laravel api 中获取 laravel api反应本机应用程序,以便在应用程序滚动时应用加载更多数据。
这是我的laravelapi
public function allPerson(Request $request) {
return Person::where('active', 'online')->paginate($request->input('results', 10));
}
Api URL
https://housedata.com/allperson?page=2
React Native
const [personData, setPerson] = React.useState([]);
const getPerson = () => {
axios.get('https://housedata.com/allperson?page=2')
.then(response => {
setPerson(response.data)
console.log(response.data);
});
}
useEffect(() => {
getPerson();
}, []);
<FlatList
data={personData}
keyExtractor={item => item.id}
renderItem={({ item }) => {
return (
<View>
<Text>{item.person_name}</Text>
</View>
);
}}
/>
当我查看 console.log(response.data);
时,我看到数据已被提取。
另外,当我将 ->paginate()
更改为 get()
时,它正在显示数据并正常工作,我该如何解决这个问题。
谢谢
get 和 paginate 方法 returns 数据不同 get 方法 returns 直接数据,而 paginate 方法将 return 包含数据的分页对象 属性 所以要访问它你必须做
response.data.data
axios.get('https://housedata.com/allperson?page=2')
.then(response => {
setPerson(response.data.data) // <-- change this
console.log(response.data.data);
});
我有一个 laravel api,我在其中添加了 ->paginate()
,这样我就可以分页,并通过在我的 laravel api 中获取 laravel api反应本机应用程序,以便在应用程序滚动时应用加载更多数据。
这是我的laravelapi
public function allPerson(Request $request) {
return Person::where('active', 'online')->paginate($request->input('results', 10));
}
Api URL
https://housedata.com/allperson?page=2
React Native
const [personData, setPerson] = React.useState([]);
const getPerson = () => {
axios.get('https://housedata.com/allperson?page=2')
.then(response => {
setPerson(response.data)
console.log(response.data);
});
}
useEffect(() => {
getPerson();
}, []);
<FlatList
data={personData}
keyExtractor={item => item.id}
renderItem={({ item }) => {
return (
<View>
<Text>{item.person_name}</Text>
</View>
);
}}
/>
当我查看 console.log(response.data);
时,我看到数据已被提取。
另外,当我将 ->paginate()
更改为 get()
时,它正在显示数据并正常工作,我该如何解决这个问题。
谢谢
get 和 paginate 方法 returns 数据不同 get 方法 returns 直接数据,而 paginate 方法将 return 包含数据的分页对象 属性 所以要访问它你必须做
response.data.data
axios.get('https://housedata.com/allperson?page=2')
.then(response => {
setPerson(response.data.data) // <-- change this
console.log(response.data.data);
});