Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs values.map不是一个函数_Reactjs_Use Effect - Fatal编程技术网

Reactjs values.map不是一个函数

Reactjs values.map不是一个函数,reactjs,use-effect,Reactjs,Use Effect,我正在从数据库中获取详细信息,希望将其显示到表中,但出于最初的目的,我希望只在浏览器上显示,而不显示表和其他内容。。map不是一个函数,但我可以看到控制台中打印的值 这里我使用的是功能组件 export default function SimpleTable() { const [values, setValues] = useState({}); 下面是fetch函数 async function handleTable(){ const res = await fetch("http:/

我正在从数据库中获取详细信息,希望将其显示到表中,但出于最初的目的,我希望只在浏览器上显示,而不显示表和其他内容。。map不是一个函数,但我可以看到控制台中打印的值

这里我使用的是功能组件

export default function SimpleTable() {
const [values, setValues] = useState({});
下面是fetch函数

async function handleTable(){
const res = await fetch("http://localhost:4000/productslist")
const data = await res.json()
setValues(data.data)
console.log(data.data)
}
在useffect上调用fetch函数

useEffect(()=>{
handleTable()
},[])
将值呈现到浏览器中

return (
<div>

{console.log(values)}
{values.map(v => {
return  <h4 key={v.idaddproducts}>{v.productName}{v.productId}{v.productBrand}</h4>})}
</div>
);
}

您可以设置一个值
{}
,而不是
[]
。 更新


您可以设置一个值
{}
,而不是
[]
。 更新


将状态定义为数组

const [values, setValues] = useState([]);
代码

{values&&values.map(v=>{
返回
{v.productName}{v.productId}{v.productBrand}
})
}

将您的状态定义为数组

const [values, setValues] = useState([]);
代码

{values&&values.map(v=>{
返回
{v.productName}{v.productId}{v.productBrand}
})
}

值的初始状态为空对象

更新至

const [values, setValues] = useState([]);
因为对象没有名为
.map

同样在代码中,因为它是一个异步调用,所以您可以根据状态检查数据是否有负载。您可以添加一个简单的东西,即三元检查

{values.length && values.map(v => {
return  <h4 key={v.idaddproducts}>{v.productName}{v.productId}{v.productBrand}</h4>})}
</div>
);
{values.length&&values.map(v=>{
返回{v.productName}{v.productId}{v.productBrand}}}
);
因此,一旦数组的长度大于零,它将只执行map函数


使用示例

值的初始状态为空对象

更新至

const [values, setValues] = useState([]);
因为对象没有名为
.map

同样在代码中,因为它是一个异步调用,所以您可以根据状态检查数据是否有负载。您可以添加一个简单的东西,即三元检查

{values.length && values.map(v => {
return  <h4 key={v.idaddproducts}>{v.productName}{v.productId}{v.productBrand}</h4>})}
</div>
);
{values.length&&values.map(v=>{
返回{v.productName}{v.productId}{v.productBrand}}}
);
因此,一旦数组的长度大于零,它将只执行map函数


使用示例

您将值初始值设置为
{}
而不是将其设置为
[]
,因为初始
是一个对象
Array.map
是一个有效的原型。因此,将初始
值更改为Array
const[values,setValues]=useState([])
您正在将值初始值设置为
{}
,而将初始
值设置为对象
Array.map
是一个有效的原型。因此,将初始
值更改为Array
const[values,setValues]=useState([])
您需要添加value.length作为三元检查,因为空数组是true-valueWorked-fine。。随着你所做的改变。。谢谢,您需要添加values.length作为三元检查,因为空数组是true valueWorked罚款。。随着你所做的改变。。谢谢,光是这个改变是行不通的。。我尝试了几次,可能是因为api响应中的值应该为null或未定义。仅此更改无法工作。。我试了好几次,可能是因为api响应中的值应该为null或未定义。你能帮我添加加载状态吗?你能推荐任何课程或链接吗?关于fullstack reactjsLet我们。你能帮我添加加载状态吗?你能推荐任何课程或链接吗?让我们来考虑一下。
const [values, setValues] = useState([]);
{values.length && values.map(v => {
return  <h4 key={v.idaddproducts}>{v.productName}{v.productId}{v.productBrand}</h4>})}
</div>
);