Reactjs Redux未重新提交组件

Reactjs Redux未重新提交组件,reactjs,react-native,redux,Reactjs,React Native,Redux,我知道有很多关于这个的帖子,但我想我已经正确设置了减速器,状态正在返回更新状态 我的初始状态: callHistory:null, 我的redux减速机: case CALL\u历史记录: 返回{ ……国家, callHistory:action.data, } 我的组成部分: const仪表板=()=>{ const callHistory=useSelector(state=>state.user.callHistory); console.log(callHistory);//记录正确更

我知道有很多关于这个的帖子,但我想我已经正确设置了减速器,状态正在返回更新状态

我的初始状态:
callHistory:null,

我的redux减速机:

case CALL\u历史记录:
返回{
……国家,
callHistory:action.data,
}
我的组成部分:

const仪表板=()=>{
const callHistory=useSelector(state=>state.user.callHistory);
console.log(callHistory);//记录正确更新的状态
const ccId=getUserIdFromStorage();//使用异步存储获取ccId
const[_,getDatabase]=useDatabase();
useffect(()=>{
renderDatabase();
}, [])
const renderDatabase=()=>{
然后(id=>getDatabase(id));
}
if(callHistory){//不变冲突:仪表板(…):渲染未返回任何内容。
返回(
加载
)
}
获取数据库:

const getDatabase=ccId=>{
const docRef=db.collection(“用户”).doc(ccId);
docRef.get().then(doc=>{
如果(文件存在){
分派(callHistory(doc.data());//正确分派到存储
}否则{
log(“没有这样的文档!”);
}
}).catch(错误=>console.log(“获取文档时出错:”,错误));
}

非常感谢任何帮助或见解!

callHistory
为空时,您似乎没有其他条件。您的组件必须返回某些内容,即使它刚刚返回
null

添加如下内容:

if(调用历史记录){
返回(
加载
)
}否则{
返回null;
}

谢谢,是的,我使用了一个else条件,但它永远保持在该条件下,因为当
callhistory
不为空时,它不会重新呈现组件。如果您的控制台日志记录了更新后的值,就像您的代码注释所说的那样,那么这意味着它将被重新呈现。我认为您需要更多地解释实际情况真实的发生与你的期望。