AnA*_*ice -1 javascript reactjs
我的 React 应用程序有一个基本 div,如下所示:
<body>
<div id="root">
....
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
在我的欢迎容器中,我想向 div w id="root 添加一个类,然后在欢迎容器卸载时删除该类。
class Welcome extends React.Component {
componentDidMount() {
console.log('componentDidMount');
console.log($('#root'));
}
....
Run Code Online (Sandbox Code Playgroud)
使用 jQuery 我可以做类似的事情
$('#root').addClass('myClass')
....
$('#root').removeClass('myClass')
Run Code Online (Sandbox Code Playgroud)
在 React 中通过 ID 找到类后添加和删除 div 上的类相当于什么?
这毫无意义。您不应该从 React 组件向 root 添加类。根 div 应该只是存在以使用 ReactDOM 注入 React。
不要修改 html 根,而是创建一个名为App或 的 React 类,然后渲染一个<div className="app" />包装所有组件的类。然后,您可以使用 React state 或 props 来修改 className。
class App extends React.Component {
constructor() {
super();
this.state = {
appClass: 'myClass'
};
}
componentDidMount() {
this.setState({ appClass: 'newClass' });
}
render() {
return (
<div className={this.state.appClass}>
// Render children here
</div>
);
}
}
Run Code Online (Sandbox Code Playgroud)
如果您想appClass从子组件(例如Welcome应用程序中更靠下的子组件)修改 className,那么您将需要使用 Redux 或 Flux 之类的状态管理来修改子组件的 className,否则很快就会变得混乱。
编辑:从 this.state 对象中删除了分号