Javascript 映射从React上的aws sdk返回的数据
我正在为一个应用程序使用AWS Amplify,但它缺乏管理用户的能力,因此我将在短期内使用AWS sdk,直到他们添加该功能为止 我已经能够使用以下代码从promise返回数据:Javascript 映射从React上的aws sdk返回的数据,javascript,arrays,reactjs,aws-sdk,aws-amplify,Javascript,Arrays,Reactjs,Aws Sdk,Aws Amplify,我正在为一个应用程序使用AWS Amplify,但它缺乏管理用户的能力,因此我将在短期内使用AWS sdk,直到他们添加该功能为止 我已经能够使用以下代码从promise返回数据: const ListUsers = () => { const [users, setUsers] = useState([]); useEffect(() => { const getUsers = () => { var params = { User
const ListUsers = () => {
const [users, setUsers] = useState([]);
useEffect(() => {
const getUsers = () => {
var params = {
UserPoolId: USER_POOL_ID,
AttributesToGet: ['given_name']
};
return new Promise((resolve, reject) => {
AWS.config.update({
region: USER_POOL_REGION,
accessKeyId: AWS_ACCESS_KEY_ID,
secretAccessKey: AWS_SECRET_KEY
});
var cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider();
cognitoidentityserviceprovider.listUsers(params, (err, data) => {
if (err) {
console.log(err);
reject(err);
} else {
resolve(data);
setUsers(data)
}
});
});
};
getUsers();
}, []);
return users.map(user => {
return (
<ul>
<li>{user.given_name}</li>
</ul>
};
export default ListUsers;
const ListUsers=()=>{
const[users,setUsers]=useState([]);
useffect(()=>{
const getUsers=()=>{
变量参数={
UserPoolId:USER\u POOL\u ID,
AttributesToGet:['given_name']
};
返回新承诺((解决、拒绝)=>{
AWS.config.update({
区域:用户\池\区域,
accessKeyId:AWS\u ACCESS\u KEY\u ID,
secretAccessKey:AWS\u SECRET\u密钥
});
var cognitoidentityserviceprovider=new AWS.cognitoidentityserviceprovider();
cognitoidentityserviceprovider.listUsers(参数,(错误,数据)=>{
如果(错误){
控制台日志(err);
拒绝(错误);
}否则{
解析(数据);
设置用户(数据)
}
});
});
};
getUsers();
}, []);
返回users.map(user=>{
返回(
- {user.given_name}
};
导出默认列表用户;
我注意到的一件事是,它似乎没有设置状态。很肯定,这是因为我做得不对。我需要做的是能够映射返回的数据,就像它在返回语句中所做的那样。任何帮助都将不胜感激!在这种情况下,似乎不需要创建自己的承诺莎莉,没有它你的钩子会很好用的:
useEffect(() => {
var params = {
UserPoolId: USER_POOL_ID,
AttributesToGet: ['given_name']
};
AWS.config.update({
region: USER_POOL_REGION,
accessKeyId: AWS_ACCESS_KEY_ID,
secretAccessKey: AWS_SECRET_KEY
});
var cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider();
cognitoidentityserviceprovider.listUsers(params, (err, data) => {
if (err) {
console.log(err);
} else {
setUsers(data)
}
});
}, []);
但主要问题似乎来自您返回的JSX,因为它不能是一个节点数组
在您的情况下,您应该返回ul
标签和map
您的用户,如下所示(别忘了给他们一个唯一的键
):
返回(
{users.map(user=>- {user.given_name}
)}
)
return (
<ul>
{users.map(user => <li key={user.given_name}>{user.given_name}</li>)}
</ul>
)