javascript - 在 React JS 中使用 createContext 将“值”传递给提供者
问题描述
我是 React JS 的新手,我正在尝试理解createContext()
功能组件。所以,在这里我试图将存储的当前状态传递books
给提供者,但我想我做错了什么。你能帮我解决这个问题吗?
上下文组件:
import React, { createContext, useState } from "react";
export const BookContext = createContext();
const BookContextProvider = (props) => {
const [books, setBooks] = useState([
{ title: "Book 1", id: 1 },
{ title: "Book 2", id: 2 },
{ title: "Book 3", id: 3 },
{ title: "Book 4", id: 4 },
]);
return (
<BookContext.Provider value={ books }> //<-- Doesn't work
{props.children}
</BookContext.Provider>
);
};
export default BookContextProvider;
我要使用上下文的组件:
import React, { useContext } from "react";
import { BookContext } from "../contexts/BookContext";
const BookList = () => {
const { books } = useContext(BookContext);
return (
<div>
<ul>
{books.map((book) => (
<li key={book.id}>
{book.title}
</li>
))}
</ul>
</div>
);
};
export default BookList;
解决方案
您没有将默认值传递给您的createContext()
.
推荐阅读
- python - NoReverseMatch at /Reverse for 'newsdesc' 关键字参数 '{'slug': ''}' 未找到
- c - 没有错误或警告,但我的代码输出是无穷无尽的
- css - 如何确保边框框在反应中自动调整为窗口大小
- http - 错误未定义,HttpErrorResponse {headers:HttpHeaders,状态:404,statusText:“未找到”
- amazon-web-services - 在哪里可以找到为 Alexa 技能部署的代码存储库?
- amazon-s3 - 删除 Cloudfront,将 CNAME 链接重定向到 S3
- regex - Google表格多次搜索并从具有重复字符串的列表中替换
- html - 如何将我的图片动画到另一个点
- email - SES.sendRawEmail 仅使用 Gmail 中的第一个附件(Nodejs)
- python - 如何交换数据集中整个列的单元格值?