Javascript 查找方法在我的react应用程序中不起作用 功能产品屏幕(道具){ 日志(props.match.params.id); constproduct=data.products.find((x)=>x.id==props.match.params.id); 控制台日志(产品); 返回( {product} ); }
在产品的控制台中,它表示未定义Javascript 查找方法在我的react应用程序中不起作用 功能产品屏幕(道具){ 日志(props.match.params.id); constproduct=data.products.find((x)=>x.id==props.match.params.id); 控制台日志(产品); 返回( {product} ); },javascript,node.js,reactjs,Javascript,Node.js,Reactjs,在产品的控制台中,它表示未定义 const product=data.products.find((x)=>x._id==props.match.params.id); 使用=而不是=功能产品屏幕(道具){ function ProductScreen(props) { console.log(props.match.params.id); const product = data.products.find((x) => x.id === props.match.params.
const product=data.products.find((x)=>x._id==props.match.params.id);
使用=
而不是=
功能产品屏幕(道具){
function ProductScreen(props) {
console.log(props.match.params.id);
const product = data.products.find((x) => x.id === props.match.params.id);
console.log(product);
return (
<div>
<h1>{product}</h1>
</div>
);
}
日志(props.match.params.id);
const product=data.products.find(x=>x._id===props.match.params.id);
控制台日志(产品);
返回
{product.name}
}
这很好。您可以指定product.name或product.id..使用
x._id.toString()===match.params.id
您需要确保在data.products和props.match.params.id之间比较相同的数据类型
props.match.params.id的数据类型是字符串。因此,data.products.id也应该是一个字符串。因为props.match.params.id是字符串,x.id是数字,所以它是未定义的。您应该将props.match.params.id转换为数字
function ProductScreen(props){
console.log(props.match.params.id);
const product = data.products.find( x => x._id === props.match.params.id);
console.log(product);
return <div>
<h1>{product.name}</h1>
</div>
}
功能产品屏幕(道具){
const id=编号(props.match.params.id);
constproduct=data.products.find((x)=>x.id==id);
返回(
{product}
);
}
产品
是一个对象,它不能被渲染,如果需要渲染匹配对象的某些特定属性,请传递:{product.someProperty}
data.products打印什么?什么是数据
?props.match.params.id看起来像什么?如何判断?试试看。它对我有用。看看发生了什么。我只想知道问这个问题的成员是如何做到这一点的?你们测试的数据是什么?当然与OP不一样,因为OP从未展示过他的数据,所以它对您有效,因为您使用的是您自己的数据,设计用于此特定场景。JS中常规equals运算符(==
)的行为被认为是一个设计缺陷,建议始终使用严格equals(==
)。您的建议与JS最佳实践相反。
function ProductScreen(props) {
const id = Number(props.match.params.id);
const product = data.products.find((x) => x.id === id);
return (
<div>
<h1>{product}</h1>
</div>
);
}