reactjs - 在本机反应中制作个人资料
问题描述
我是一名 java 开发人员,试图学习如何制作配置文件(对于已登录的用户和登录用户可以看到的其他用户)以做出本机反应,我想知道最好的方法是什么关于这个是。我的直觉是制作一个包含描述、名称等字段的配置文件对象,但似乎这不是反应的理想方式。提前致谢
解决方案
我不确定我是否理解你的问题,当我想创建个人资料屏幕时我会怎么做?
- 首先,我会考虑一些状态管理,例如 redux,以通过其他屏幕/组件获取状态
- 用于保存的异步存储让我们说令牌如果用户已登录,通过 redux reducer 我可以像这样启动变量:
已记录:假
每次用户登录时,这个变量都会改变。你可以为用户创建一个具有属性的模型,但是当你从 JSON 中的某些 API 获取它时,它就没有必要了那么我将如何编写配置文件屏幕:
const ProfileScreen = props => {
const user = useSelector(state => state.users.user);
const fetchUser = useSelector(state => state.users.fetchUser);
const UserId = props.navigation.getParam('id');
const dispatch = useDispatch();
useEffect(() => {
const loadUser = async () => {
try {
setIsLoading(true);
await dispatch(usersActions.fetchUserData(UserId));
setIsLoading(false);
} catch (err) {
setError(err.message);
}
};
loadUser();
}, [UserId]);
return (
<View style={styles.container}>
<Text> Name: {fetchUser.name}</Text>
</View>
);
};
解释:
- 变量用户 - 从 redux reducer 获取状态,因此它的用户登录信息,如果你想稍后检查 fetcheduser === user 那么你显示编辑按钮等。
- 变量 fetchUser - 我们希望在个人资料页面上看到的用户
- 我们从带有导航的父道具中获得的变量 UserId
- 然后我们使用 useEffect 在启动时触发,当 userId 发生变化时,方法 fetchUserData 正在为用户获取数据,然后保存到 redux 中的状态,然后我们可以获得他的用户名等。
在渲染方法中,我们只显示用户详细信息
如果您想检查用户是否已登录以显示某些通知,那么您可以通过渲染执行以下操作:
<View style={styles.container}>
{isLogged && <Text> user is logged in show him something</Text>}
</View>
推荐阅读
- c++ - 如何在 c++ 中正确输出带有 if 状态的二维数组?
- angular - Angular - 在通过formdata创建条目期间上传文件
- reactjs - 如何在 google-maps-react 中将 InfoWindow 添加到我的标记?
- r - 如何在 Rmarkdown 中调整此表的大小?
- javascript - 显示所有按钮 - JSX 逻辑
- javascript - 如何让我的画布(fabricjs)始终是窗口的全宽,在调整窗口大小并将对象保持在适当位置之后也是如此
- html-email - 你将如何解决这个问题?图像重叠 2 种纯色的电子邮件设计
- mysql - RDS - 无法连接到数据库
- python - 合并具有不同时间分辨率的 pandas 时间序列数据帧
- javascript - 在节点和浏览器之间共享获取代码?