javascript - 组件未使用消费者显示
问题描述
我使用上下文 api 正确地将数据传递给了消费者,但是产品组件没有显示。
产品清单组件:
import React, { Component } from "react";
import Product from "./product";
import { Consumer } from "./context";
class Listofproducts extends Component {
constructor(props) {
super(props);
this.state = {};
}
render() {
return (
<Consumer>
{value => {
value.map(data => {
console.log(data); // its returning the data correctly
return <Product key={data.id} product={data} />;
});
}}
</Consumer>
);
}
}
export default Listofproducts;
我发送具有消费者价值的数据的产品组件:
import React, { Component } from "react";
class Product extends Component {
render() {
console.log(this.props.product); // not showing anything on the console nor an error
return <div>hello from product</div>;
}
}
export default Product;
先感谢您。
解决方案
您没有从作为 child 的函数返回任何内容到Consumer
.
添加return
关键字,它将按预期工作。
class Listofproducts extends Component {
constructor(props) {
super(props);
this.state = {};
}
render() {
return (
<Consumer>
{value => {
return value.map(data => {
console.log(data); // its returning the data correctly
return <Product key={data.id} product={data} />;
});
}}
</Consumer>
);
}
}
推荐阅读
- android - Facebook 广告延迟深度链接在 Instagram 上不起作用,但同样的广告在 Facebook 上运行良好
- reactjs - 当 url 不正确时 React Router 重定向
- c# - 使用 EmguCV 3.1.0.1 从视频捕获中检测
- c++ - C++11中成员函数的值类别属性是什么?
- php - Paypal PHP SDK 付款状态
- python - 尽管 shell 脚本抛出 [Errno 111] 连接被拒绝,但在 Docker 启动时使用 TCP 服务器执行 python3 脚本
- ruby-on-rails - Rails 5.2 是否可以使用路由来分配枚举值?
- arrays - 多对多表组合成数组
- java - 从 Set 构造 BST
- ruby-on-rails - 如何在 Rails 5 中使用 ChartKick、Ahoy 和地理编码显示用户的位置?