Я впервые использую контекстный API. Я понимаю, как написать код на одной странице, но не могу понять, как разбить его на несколько файлов. Когда я разбиваю его, как показано ниже, появляется сообщение об ошибке. что я не экспортировал MyProvider.Но я это сделал. Я искал много видеоуроков, но не смог найти тот, который соответствует моей проблеме
App.js
import {MyProvider} from './Context';
import {myContext} from './Context';
class Name extends Component {
render() {
return (
<div>
<myContext.Consumer>
{(context) => (
<React.Fragment>
<h1>Hello, {context.state.name}</h1>
<h3>{context.state.address}</h3>
</React.Fragment>
)}
</myContext.Consumer>
</div>
);
}
}
class Age extends Component {
render() {
return (
<div>
<myContext.Consumer>
{(context) => (
<React.Fragment>
<h1>You are {context.state.age} years old</h1>
<h3>You were born in - {context.state.dob}</h3>
</React.Fragment>
)}
</myContext.Consumer>
</div>
);
}
}
class App extends Component {
render() {
return (
<MyProvider>
<div className="App">
<Name />
<Age />
</div>
</MyProvider>
);
}
}
export default App;
< Сильный > Context.js
export const myContext = React.createContext();
class MyProvider extends Component {
state = {
name: "Sam",
address: "No.35,Main Street,Galle",
age: 50,
dob: "1970-10-21"
}
render() {
return (
<myContext.Provider value={{
state: this.state
}}>
{this.props.children}
</myContext.Provider>
)
}
}
export default MyProvider;
1 ответ
У вас ошибка при импорте. Когда вы экспортируете как по умолчанию , вы должны импортировать его без фигурных скобок.
export default CLASS
import CLASS from
Или вы можете экспортировать свой класс как экспортный класс, а затем импортировать его, как вы это делаете:
export class A
import { A }
UPD: Пожалуйста, взгляните на
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export
Похожие вопросы
Новые вопросы
reactjs
React — это библиотека JavaScript для создания пользовательских интерфейсов. Он использует декларативную парадигму на основе компонентов и стремится быть эффективным и гибким.