Javascript React-单击位于组件外部的按钮后重新启动组件
我有一个Javascript React-单击位于组件外部的按钮后重新启动组件,javascript,reactjs,components,react-component,Javascript,Reactjs,Components,React Component,我有一个index.js文件,在那里我渲染了App组件 Index.js文件 ReactDOM.render(<App />, document.getElementById('root')); 下面是App.js文件的代码,其中包含App组件 const Hello = () => (<p>Hello</p>) App.js文件 const handleClick = () => { ReactDOM.render(<Setting
index.js
文件,在那里我渲染了App
组件
Index.js文件
ReactDOM.render(<App />, document.getElementById('root'));
下面是App.js
文件的代码,其中包含App
组件
const Hello = () => (<p>Hello</p>)
App.js文件
const handleClick = () => {
ReactDOM.render(<SettingContainer value="10" />, document.getElementById('divHello'));
};
const App = () => {
return (
<>
<div id="divHello">
<SettingContainer value="10" />
</div>
<button onClick={handleClick}>Button</button>
</>
);
};
export default App;
consthandleclick=()=>{
render(,document.getElementById('divHello');
};
常量应用=()=>{
返回(
按钮
);
};
导出默认应用程序;
事实上,你的问题又回到了你的心态上,你应该改变你的想法。您应该有一个索引容器,如下所示:
const Index = () => {
const [isRender, renderSettingContainer] = useState(false);
return (
<>
{isRender && (
<SettingContainer />
)}
<App onClick={renderSettingContainer}>
</>;
);
};
const App = ({ onClick }) => (
<>
Hello Friends
<div id="divHello">
</div>
<button onClick={onClick}>Button</button>
</>
);
ReactDOM.render(<Index />, document.getElementById('root'));
此外,无需使用ReactDOM
两次,因此请按如下方式编写:
const Index = () => {
const [isRender, renderSettingContainer] = useState(false);
return (
<>
{isRender && (
<SettingContainer />
)}
<App onClick={renderSettingContainer}>
</>;
);
};
const App = ({ onClick }) => (
<>
Hello Friends
<div id="divHello">
</div>
<button onClick={onClick}>Button</button>
</>
);
ReactDOM.render(<Index />, document.getElementById('root'));
ReactDOM.render(,document.getElementById('root');
如果您有任何问题,请写一条评论,我肯定会回答并更改我的答案
提示:基于丹·阿布拉莫夫的想法,
就像
,代码更少,性能更好。事实上,你的问题又回到了你的心态,你应该改变你对ReactJS的想法。您应该有一个索引容器,如下所示:
const Index = () => {
const [isRender, renderSettingContainer] = useState(false);
return (
<>
{isRender && (
<SettingContainer />
)}
<App onClick={renderSettingContainer}>
</>;
);
};
const App = ({ onClick }) => (
<>
Hello Friends
<div id="divHello">
</div>
<button onClick={onClick}>Button</button>
</>
);
ReactDOM.render(<Index />, document.getElementById('root'));
此外,无需使用ReactDOM
两次,因此请按如下方式编写:
const Index = () => {
const [isRender, renderSettingContainer] = useState(false);
return (
<>
{isRender && (
<SettingContainer />
)}
<App onClick={renderSettingContainer}>
</>;
);
};
const App = ({ onClick }) => (
<>
Hello Friends
<div id="divHello">
</div>
<button onClick={onClick}>Button</button>
</>
);
ReactDOM.render(<Index />, document.getElementById('root'));
ReactDOM.render(,document.getElementById('root');
如果您有任何问题,请写一条评论,我肯定会回答并更改我的答案
提示:基于Dan Abramov的想法,
与
类似,代码更少,性能更好。使用条件渲染,按按钮设置值以显示Hello组件
const Hello = () => (<p>Hello</p>)
const Hello=()=>(Hello)
然后在应用程序中,按下按钮时将值设置为true
const App = () => {
const [displayHello, setDisplayHello] = useState(false);
const handleClick = () => {
setDisplayHello(!displayHello)
};
return (
<React.Fragment>
Hello Friends
<div id="divHello">
</div>
{displayHello && <Hello />}
<button onClick={handleClick}>Button</button>
</React.Fragment>
);
};
const-App=()=>{
const[displayHello,setDisplayHello]=useState(false);
常量handleClick=()=>{
setDisplayHello(!displayHello)
};
返回(
朋友们好
{displayHello&}
按钮
);
};
//获取一个钩子函数
const{useState}=React;
常量Hello=()=>(来自Hello组件的Hi
)
常量应用=()=>{
const[displayHello,setDisplayHello]=useState(false);
常量handleClick=()=>{
setDisplayHello(!displayHello)
};
返回(
朋友们好
{displayHello&}
按钮
);
};
//渲染它
ReactDOM.render(
,
document.getElementById(“react”)
);代码>
使用条件渲染,按按钮设置值以显示Hello组件
const Hello = () => (<p>Hello</p>)
const Hello=()=>(Hello)
然后在应用程序中,按下按钮时将值设置为true
const App = () => {
const [displayHello, setDisplayHello] = useState(false);
const handleClick = () => {
setDisplayHello(!displayHello)
};
return (
<React.Fragment>
Hello Friends
<div id="divHello">
</div>
{displayHello && <Hello />}
<button onClick={handleClick}>Button</button>
</React.Fragment>
);
};
const-App=()=>{
const[displayHello,setDisplayHello]=useState(false);
常量handleClick=()=>{
setDisplayHello(!displayHello)
};
返回(
朋友们好
{displayHello&}
按钮
);
};
//获取一个钩子函数
const{useState}=React;
常量Hello=()=>(来自Hello组件的Hi
)
常量应用=()=>{
const[displayHello,setDisplayHello]=useState(false);
常量handleClick=()=>{
setDisplayHello(!displayHello)
};
返回(
朋友们好
{displayHello&}
按钮
);
};
//渲染它
ReactDOM.render(
,
document.getElementById(“react”)
);代码>
你到底想做什么?我需要在点击该组件之外的按钮时使用默认值重新加载settingContainer。也许可以使用Redux?不亲爱的@DominikMatis,请不要,Redux很好,但不适合这种小情况。它可能有一个较高的状态。嗯,我不认为你应该分别呈现两个组件。。。所有内容都应该在应用程序中。你到底想做什么?我需要在点击该组件之外的按钮时使用默认值重新加载settingContainer。可能使用Redux?不,亲爱的@DominikMatis,请不要,Redux很好,但不适合这种小情况。它可能有一个较高的状态。嗯,我不认为你应该分别呈现两个组件。。。所有这些都应该在应用程序中,你的答案就像使用更好的工具一样,我指的是代码片段。我投赞成票。谢谢。你的答案就像使用更好的工具,我是说代码片段。我投赞成票。谢谢