#javascript #reactjs #function #class #components
#javascript #reactjs #функция #класс #Компоненты
Вопрос:
Как мне преобразовать этот код в компонент класса? проблема const {value} = useDarkMode (false);
в том, что я не понимаю, как применить его в компоненте класса
import './Content.css'
import useDarkMode from 'use-dark-mode';
export default function Content () {
const { value } = useDarkMode(false);
return <div>
<div className={value ? 'Dark_Mode' : 'Light_Mode'}>
<h3>Hello from React.JS</h3>
</div>
</div>
}
Комментарии:
1.
useDarkMode
это перехват и парадигма, предназначенная для использования вместе с боковыми функциональными компонентами. Вам нужно будет извлечь логику из useDarkMode в повторно используемый шаблон, такой как HOC или какая-либо другая форма управления состоянием.
Ответ №1:
Попробуйте что-то вроде этого
import './Content.css'
import React from 'react';
import useDarkMode from 'use-dark-mode';
export default function Content () {
const { value } = useDarkMode(false);
return <MyContent value={value} />
}
class MyContent extends React.component{
render() {
return <div>
<div className={this.props.value ? 'Dark_Mode' : 'Light_Mode'}>
<h3>Hello from React.JS</h3>
</div>
</div>;
}
}
Комментарии:
1. Что делать, если класс MyContent находится в другом файле? как я могу повторно ее проанализировать?
2. Нет проблем. Вы можете создать класс MyContent в виде другого файла.
Ответ №2:
Вы не можете использовать хуки в компоненте класса. Если вы хотите использовать useDarkMode
, измените свой класс компонента на функциональный компонент следующим образом:
export const Content = () => {
const { value } = useDarkMode(false);
return (
<div>
<div className={value ? 'Dark_Mode' : 'Light_Mode'}>
<h3>Hello from React.JS</h3>
</div>
</div>
)
}