【发布时间】:2020-10-20 14:38:42
【问题描述】:
我正在尝试通过上下文设置默认值(稍后我会更新)。但是我似乎无法在消费者中获得价值。
我有一个SummaryContext 文件,其中包含两个默认值title 和summary。这用于Body.js 和传递的header 值。最后是需要呈现其中一个值的Title 文件。
Title.js 中的console.log("TITLE.JS: " + {title}); 行将TITLE.JS: [object Object 打印到控制台。
我不知道自己做错了什么。
SummaryContext.js
import { createContext } from 'react'
const header = {
title: "sdlfkjasdf",
summary: "kmkmkm"
}
export const SummaryContext = createContext(header);
身体
<WikiHeader \> 行包含对文件 Title.js 的引用,这是我试图将这些值传递到的文件。
import React, {useState} from "react";
import WikiHeader from './wikiheader/WikiHeader'
import {SummaryContext} from "../contexts/SummaryContext"
function Body() {
const [header, setHeader] = useState(SummaryContext);
return (
<>
<SummaryContext.Provider value={{header}}>
<GoogleAd />
<WikiHeader />
</SummaryContext.Provider>
</>
);
}
export default Body;
Title.js
import React, {useContext} from "react"
import {SummaryContext} from "../../../contexts/SummaryContext"
import '../../../App.css'
export function Title() {
const {title, summary} = useContext(SummaryContext);
console.log("TITLE.JS: " + {title});
return (
<div className="container">
<div className="detailTitle"><span><h3>The title: {title}</h3></span></div>
</div>
);
}
【问题讨论】:
标签: reactjs use-context