【发布时间】:2021-05-31 13:43:32
【问题描述】:
我有两种状态,一种是const [users, setUsers],另一种是const [horizontalDiscussion, setHorizontalDiscussion]
用户,setUsers 部分正在工作,但水平讨论和 setHorizontalDiscussion 不工作。
可能是在与 useContext(UserContext) 相同的上下文中执行此操作的原因?
我不知道我在哪里做错了。你能帮帮我吗?
在 MainScreen.js 我只是写这个
const [users, setUsers] = useContext(UserContext);
const [horizontalDiscussion, setHorizontalDiscussion] = useContext(UserContext);
这里是 UserContextManager.js
import React, { createContext, useState } from 'react';
import HorizontalCircles from "../components/HorizontalDiscussion";
import HorizontalDiscussion from "../components/HorizontalDiscussion";
export const UserContext = createContext();
function UserContextManager(props) {
// if i write const {users, setUsers} then i should UserContext.Provider value={{users,setUsers}}
const [users, setUsers] = useState([
<HorizontalCircles
skeleton={true}
key={0}
colorFirst={'rgb(' + 100 + ',' + 100 + ',' + 100 + ')'}
colorSecond={'rgb(' + 100 + ',' + 100 + ',' + 100 + ')'}
/>,
<HorizontalCircles
skeleton={true}
key={1}
colorFirst={'rgb(' + 100 + ',' + 100 + ',' + 100 + ')'}
colorSecond={'rgb(' + 100 + ',' + 100 + ',' + 100 + ')'}
/>,
]);
const [horizontalDiscussion, setHorizontalDiscussion] = useState([
<HorizontalDiscussion
skeleton={true}
key={0}
color={"rgb(" + 100 + "," + 100 + "," + 100 + ")"}
/>,
<HorizontalDiscussion
skeleton={true}
key={1}
color={"rgb(" + 100 + "," + 100 + "," + 100 + ")"}
/>,
]);
return (
<UserContext.Provider value={[users, setUsers, horizontalDiscussion, setHorizontalDiscussion]}>
{props.children}
</UserContext.Provider>
);
}
export default UserContextManager;
【问题讨论】:
-
你能详细说明它们是如何不工作的吗?你得到什么行为,你期望什么?
-
我希望他们做我分配的特殊事情。我的意思是每个州都有不同的角色。但是当我添加其他状态
HorizontalDiscussion时,它会执行其他状态的操作。但是它的作用其实是不同的,它只是没有看到它的作用,它做了users , setUsersstate 做的事情
标签: reactjs react-native use-context