首页 > 解决方案 > 呼叫发布列表的用户

问题描述

我在一个反应​​原生列表应用程序中工作。我有这个列表详细信息屏幕,我想显示发布此特定列表的用户。现在我有这段代码,它显示了当前登录的用户,但这不是我需要的:

function ListingDetailsScreen({route}) {

const listing = route.params;

const { user } = useAuth();

return (
    <KeyboardAvoidingView behavior="position" keyboardVerticalOffset={Platform.OS === 'ios' ? 0 : 100} >
    
        <Image style={styles.image} preview={{uri: listing.images[0].thumbnailUrl}} tint="light" uri={listing.images[0].url}/>
        <View style={styles.detailsContainer}>
            <AppText style={styles.title}>{listing.title}</AppText>
            <AppText style={styles.price}>${listing.price}</AppText>
            <AppText style={styles.description}>{listing.description}</AppText>

            <View style={styles.userContainer}>
                <ListItem title={ user.name } subTitle={ user.email } image={require('../assets/ilir.jpg')} />
            </View>

            <ContactSellerForm listing={listing} />
        </View>
    
    </KeyboardAvoidingView>
);
}

这是列表 API:

import client from './client';

const endpoint = '/listings';

const getListings = () => client.get(endpoint);

const addListing = (listing, onUploadProgress) => {
    const data = new FormData();
    data.append('title', listing.title);
    data.append('price', listing.price);
    data.append('categoryId', listing.category.value);
    data.append('description', listing.description);

    listing.images.forEach((image, index) =>
        data.append('images', {
            name: 'image' + index,
            type: 'image/jpeg',
            uri: image
        }));

    if (listing.location)
        data.append('location', JSON.stringify(listing.location));

    return client.post(endpoint, data, {
        onUploadProgress: (progress) => 
            onUploadProgress(progress.loaded / progress.total),
    });
}

export default {
    addListing,
    getListings,
}

用户 API:

import client from './client';

const usersEndpoint = '/users'

const getUsers = () => client.get(usersEndpoint);


const register = (userInfo) => client.post((usersEndpoint), userInfo);


export default { register, getUsers };

在 nodejs 后端项目中,我的 users 数组:

const users = [
  {
    id: 1,
    name: "Ilir",
    email: "ilir@domain.com",
    password: "12345",
  },
  {
    id: 2,
    name: "John",
    email: "john@domain.com",
    password: "12345",
  },
  {
    id: 3,
    name: "Iris",
    email: "iris@domain.com",
    password: "12345",
  },
];

const getUsers = () => users;

const getUserById = (id) => users.find((user) => user.id === id);

const getUserByEmail = (email) => users.find((user) => user.email === email);

const addUser = (user) => {
  user.id = users.length + 1;
  users.push(user);
};

module.exports = {
  getUsers,
  getUserByEmail,
  getUserById,
  addUser,
};

知道如何获取在列表详细信息屏幕中发布此列表的用户吗?

标签: node.jsreactjsreact-nativereact-context

解决方案


推荐阅读