我有2个组件,每个组件都有子组件, 在其中一个组件中,如果单击了子组件,我想将其转移到应用程序组件,以便为我呈现一个全新的组件
我想使用`use state`,但是我打算在哪里启动它。我将显示我开始但已阻止继续的代码
app.jsx
import React, { useState, useEffect } from 'react';
import './App.css';
import SignIn from './components/sign-in/SignIn';
import SignUpOptions from './components/sign-in/sign-up-select-business-option';
const [signUp, setSignUp] = useState(false);
const App = () => {
if (signUp) {
return <SignUpOptions/>
}
return <SignIn/>
};
export default App;
signin.jsx
const SignIn = () => (
<div style={{display:'flex'}}>
<div style={{flex:2}}>
<ImageDiv bg={signin} src = {signin} alt="logo">
<LogoDiv src={logo} alt="logo" />
</ImageDiv>
</div>
<FormDiv>
<Input style={{marginTop: `${44 }px`}} placeholder="Username" />
<Input style={{marginTop: `${44 }px`}} placeholder="Password" />
<Button style={{marginTop: `${45 }px`}}>Sign in</Button>
<ForgotPassword>Forgot username or password</ForgotPassword>
<SignUpParagraph>Don’t have an account? Sign up</SignUpParagraph>
</FormDiv>
</div>
)
export default SignIn;
所以在登录时,如果我按一下,我希望在app.jsx中加载
答案 0 :(得分:2)
由于您是新来的,我不会给您重复的链接
app.jsx
const [signUp, setSignUp] = useState(false);
const App = () => {
if (signUp) {
return <SignUpOptions/>
}
return <SignIn setSignUp={setSignUp}/>
};
signin.jsx
const SignIn = (props) => (
<div style={{display:'flex'}}>
<div style={{flex:2}}>
<ImageDiv bg={signin} src = {signin} alt="logo">
<LogoDiv src={logo} alt="logo" />
</ImageDiv>
</div>
<FormDiv>
<Input style={{marginTop: `${44 }px`}} placeholder="Username" />
<Input style={{marginTop: `${44 }px`}} placeholder="Password" />
<Button style={{marginTop: `${45 }px`}}>Sign in</Button>
<ForgotPassword>Forgot username or password</ForgotPassword>
<SignUpParagraph setSignUp={props.setSignUp}>Don’t have an account? Sign up</SignUpParagraph>
</FormDiv>
SignUpParagraph.js
const SignUpParagraph = (props) => (
<div onClick={()=>props.setSignUp(true)}>//anything you have in here </div>
评论是否有效
答案 1 :(得分:0)
尽管您已经找到了答案,但我仍然可以为您提供另一种方法。
使用React Context,您可以在index / app.js中创建函数并与子组件一起调用它们。这是一种轻巧的替代方案,与钩子配合使用也很好。
问候