Part4- React 클래스 기반 구성 요소의 컨텍스트 API
3186 단어 reactcodingreactreduxjavascript
Index.js 코드:-_
import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<React.StrictMode>
<App />
</React.StrictMode>
)
App.js 코드:-
import React, { Component } from 'react'
import User from './User'
import { Provider } from './Context'
export default class App extends Component {
state = {
name: 'Rahul',
value: 10
};
handleClickContext = () => {
this.setState({
value: this.state.value + 1
});
}
render() {
const contextValue = {
data: this.state,
handleClick: this.handleClickContext
};
return (
<Provider value={contextValue}>
<User />
</Provider>
)
}
}
User.js 코드:
import React, { Component } from 'react'
import Guest from './Guest'
export default class User extends Component {
render() {
return (
<div>
<h3>User component</h3>
<Guest />
</div>
)
}
}
Guest.js 코드:
import React, { Component } from 'react'
import { myContext } from './Context';
// import { Consumer } from './Context'
export default class Guest extends Component {
static contextType = myContext;
componentDidMount() {
console.log(this.context);
}
render() {
console.log('a', this.context);
const { name, value } = this.context.data;
return (
<div>
<h3>Guest Component</h3>
{/* <h4>Name: {this.context.data.name} Value: {this.context.data.value}</h4>
<button onClick={this.context.handleClick}>Change Value</button> */}
<h4>Name: {name} Value: {value}</h4>
<button onClick={this.context.handleClick}>Change Value</button>
</div>
)
}
}
Context.js 코드:
import React from 'react'
export const myContext = React.createContext();
console.log('a', myContext);
export const Provider = myContext.Provider;
// export const Consumer = myContext.Consumer;
사진 출력
감사합니다.
다음에서 팔로우할 수 있습니다.
Reference
이 문제에 관하여(Part4- React 클래스 기반 구성 요소의 컨텍스트 API), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/akshdesai1/part4-context-api-in-react-class-based-component-22oh텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)