이 글에서는 주로 React 컴포넌트 "외부"에서 부모 컴포넌트의 Props를 사용하는 방법을 자세히 소개하고 참고하겠습니다.
SDK 프로젝트 작성 시 생방송방에서 SDK 초기화 시 기본 테마를 사용하고, 토픽 페이지에서 SDK 초기화 시 다른 테마를 사용하는 문제가 발생했습니다. 기본 테마는 여러 페이지에서 사용하기 위해 패키징하는 동안 전역 환경에 걸려 있습니다. SDK를 초기화할 때 사용자 정의 테마를 전달해야 합니다.
구현이 매우 간단합니다. 맞춤 테마가 있는지 확인하세요. 그렇다면 맞춤 테마를 사용하세요. 프로젝트에 포함된 대부분의 기본 구성 요소는 다음과 같습니다.
import { h, Component } from 'lib/preact' import csjs from 'lib/csjs' import { theme } from 'lib/platform' const styles = csjs` .app { background: ${theme.color}; } ` export default class App extends Component { render( <p className='styles.app'></p> ) }
맞춤형 테마는 초기화 SDK를 통해 전달됩니다. 하위 구성 요소는 props나 context를 통해 얻을 수 있지만 클래스 외부의 스타일에서는 직접 사용할 수 없습니다.
그렇다면 구성 요소 "외부"에서 상위 구성 요소의 Prop을 사용하는 방법은 무엇입니까? "글로벌 환경"에서 사용해야 할 Props를 걸 수 있다면 부담없이 사용할 수는 없을까요?
프로젝트 구조는 다음과 같습니다.
. |——src | |——lib //公用库 | |——services //抽离出的方法 | |——index.js | └──App | └──app.js └── ...
먼저 다음 내용으로 서비스에 새 customTheme.js 파일을 만듭니다.
let value = {} export default () => { const setTheme = (initColor) => { value = initColor } const getTheme = () => { return value } return { setTheme, getTheme, } }
index.js 파일에서 SDK 초기화 시 전달되는 맞춤 테마 개체를 얻을 수 있습니다. . 여기에 이 객체는 customTheme.js의 값에 저장됩니다:
import customTheme from './services/customTheme' ... const setTheme = (customTheme() || {}).setTheme setTheme && setTheme(customTheme) ...
이 방법으로 다른 곳에서 customTheme의 값을 직접 얻을 수 있습니다
import { h, Component } from 'lib/preact' import csjs from 'lib/csjs' import { theme } from 'lib/platform' import customTheme from '../services/customTheme' const getTheme = (customTheme() || {}).getTheme const custom_theme = getTheme && getTheme() const styles = csjs` .app { background: ${custom_theme.color || theme.color}; } ` export default class App extends Component { render( <p className='styles.app'></p> ) }
위 내용은 제가 모두를 위해 편집한 내용입니다. 앞으로는 모두에게 도움이 되세요.
관련 기사:
js의 npm 및 webpack 구성 방법과 관련하여 js를 통해 현재 시간 형식을 지정하는 방법은 무엇입니까?
위 내용은 React 컴포넌트 '외부' 상위 컴포넌트를 사용하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!