Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从react中的父组件内部初始化子组件状态?_Javascript_Reactjs - Fatal编程技术网

Javascript 如何从react中的父组件内部初始化子组件状态?

Javascript 如何从react中的父组件内部初始化子组件状态?,javascript,reactjs,Javascript,Reactjs,我有一个按钮,当点击时会重定向到另一个组件,但我需要在点击按钮时从父组件内部初始化子组件状态 这是父组件中的按钮 <button variant="warning" onClick={event => window.location.href='/member'} pro={p.publisher}> const Member = (props) => { const [profile, setProfile] = useState({});

我有一个按钮,当点击时会重定向到另一个组件,但我需要在点击按钮时从父组件内部初始化子组件状态

这是父组件中的按钮

<button variant="warning" onClick={event =>  window.location.href='/member'} pro={p.publisher}>
const Member = (props) => {
  const [profile, setProfile] = useState({});
  const [user, setUser] = useState({});
  const {pro, notes} = props;

  useEffect(async () => {
    try {
      h = await this.props.pro + 'hello';
      console.log(h);
      setUser(h);
    }

    } catch (e) {
      console.error(e)
    }
  }, [])

  return (
    <div>
     {this.user}
    </div>
  )
}

export default Member;
window.location.href='/member'}pro={p.publisher}>
这是子组件

<button variant="warning" onClick={event =>  window.location.href='/member'} pro={p.publisher}>
const Member = (props) => {
  const [profile, setProfile] = useState({});
  const [user, setUser] = useState({});
  const {pro, notes} = props;

  useEffect(async () => {
    try {
      h = await this.props.pro + 'hello';
      console.log(h);
      setUser(h);
    }

    } catch (e) {
      console.error(e)
    }
  }, [])

  return (
    <div>
     {this.user}
    </div>
  )
}

export default Member;
const成员=(道具)=>{
const[profile,setProfile]=useState({});
const[user,setUser]=useState({});
const{pro,notes}=props;
useffect(异步()=>{
试一试{
h=等待this.props.pro+“你好”;
控制台日志(h);
setUser(h);
}
}捕获(e){
控制台错误(e)
}
}, [])
返回(
{this.user}
)
}
导出默认成员;

当我单击按钮时,它会重定向到子组件,但字符串不会显示。如果您已经在使用
react router dom
,那么我建议使用
Link
组件

检查此处的文档:

与此相关的问题如下:


不过,这不是子组件。您正在重定向到一个不相关的组件。而且您没有将
pro
作为道具传递给
成员
。这只是按钮的一部分。有很多方法可以实现你想要的(比如使用LocalStorage或URL参数),但是使用路由库来处理这类事情似乎会更好。实际上,我已经在这个应用程序上使用react router了。如何在routes.js中的routes中将状态传递给route?如果我这样做了,我如何在上面的原始组件中设置getThisUser?