React native 使用钩子进行背对背API调用不起作用
因此,我正在构建一个功能性应用程序,它可以访问LDAP API,并根据输入的用户id导入数据 然后,它获取该输入数据并进行出站API调用,以将该数据发布到数据库中 问题是挂钩似乎不是设置,即使它处于useffect中。。如果我再次运行请求,它确实会工作,但我需要它在第一次运行时工作 我在这里真的很茫然,挂钩和异步的工作方式并不是我的强项 下面是一个示例代码React native 使用钩子进行背对背API调用不起作用,react-native,React Native,因此,我正在构建一个功能性应用程序,它可以访问LDAP API,并根据输入的用户id导入数据 然后,它获取该输入数据并进行出站API调用,以将该数据发布到数据库中 问题是挂钩似乎不是设置,即使它处于useffect中。。如果我再次运行请求,它确实会工作,但我需要它在第一次运行时工作 我在这里真的很茫然,挂钩和异步的工作方式并不是我的强项 下面是一个示例代码 const axios = require('axios').default; const [name, setName] = us
const axios = require('axios').default;
const [name, setName] = useState('');
const [position, setPosition] = useState('');
const [phone, setPhone] = useState('');
const [email, setEmail] = useState('');
const [username, setUsername] = useState('');
const [department, setDepartment] = useState('');
useEffect(() => {
console.log('Updaing');
}, [name, position, phone, email, department, username]);
const handleSubmit = async () => {
if (id) {
await handleLdap();
} else {
console.log('no id');
}
await handleSendData();
};
const handleLdap = async () => {
const data = await axios
.get(
`URL`,
{
headers: {
Accept: 'application/json',
},
}
)
.then((response) => {
setName(response.data.ldap_users[0].realname);
setPosition(response.data.ldap_users[0].position);
setPhone(response.data.ldap_users[0].phone);
setEmail(response.data.ldap_users[0].email_address);
setUsername(response.data.ldap_users[0].username);
setDepartment(response.data.ldap_users[0].department);
return data;
})
.catch((err) => {
console.log(err);
});
};
const handleSendData = async () => {
console.log('sending Data');
var data = `Data`;
var config = {
method: 'put',
url: `url`,
data: //data includes all the stuff from the phone, person etc.,
};
await axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
};