Ruby on rails 反应操作电缆提供程序未更新url?

Ruby on rails 反应操作电缆提供程序未更新url?,ruby-on-rails,reactjs,Ruby On Rails,Reactjs,我正在为聊天模块使用react actioncable提供商,并将带有用户id的url传递给提供商。在应用程序加载时,use rid将为null,并且在成功登录时更新用户id,并且提供程序将重新呈现。我不知道为什么会这样。url更新后,提供程序仍然使用空id请求,我的代码如下 const App=(props)=>{ let userId = localStorage.getItem("userId"); const [url,setUrl]=useState(`$

我正在为聊天模块使用react actioncable提供商,并将带有用户id的url传递给提供商。在应用程序加载时,use rid将为null,并且在成功登录时更新用户id,并且提供程序将重新呈现。我不知道为什么会这样。url更新后,提供程序仍然使用空id请求,我的代码如下

const App=(props)=>{
      let userId = localStorage.getItem("userId");
      const [url,setUrl]=useState(`${enpoint}/cable?id=${userId}`);
      useEffect(() => {
     if(props.data&&props.data.user){
      setUrl(`${enpoint}/cable?id=${props.data.user.user.id}`);
    }
  },[props.data]);`enter code here`
  console.log("url",url);
  return (
      <ActionCableProvider url={url}>
      // other components
      </ActionCableProvider>
const-App=(道具)=>{
让userId=localStorage.getItem(“userId”);
const[url,setUrl]=useState(`${enpoint}/cable?id=${userId}`);
useffect(()=>{
if(props.data&&props.data.user){
setUrl(`${enpoint}/cable?id=${props.data.user.user.id}`);
}
},[props.data]);`在此处输入代码`
log(“url”,url);
返回(
//其他组成部分