Reactjs 本地存储和条件映射
我正在该会话期间创建的、isClaimed状态为false的Lead的本地存储中创建一个数组。下面是我对代码的尝试Reactjs 本地存储和条件映射,reactjs,Reactjs,我正在该会话期间创建的、isClaimed状态为false的Lead的本地存储中创建一个数组。下面是我对代码的尝试 import React, { useContext, useEffect, useState } from 'react' import LeadContext from '../../context/Lead/leadContext' import TodaysLeadItem from '../stacks/TodaysLeadItem' import Leads from
import React, { useContext, useEffect, useState } from 'react'
import LeadContext from '../../context/Lead/leadContext'
import TodaysLeadItem from '../stacks/TodaysLeadItem'
import Leads from './Leads';
const TodaysLeads = () => {
const leadContext = useContext(LeadContext);
const { addLead, lead, todaysLeads } = leadContext
const { isClaimed } = lead
useEffect(()=>{
if (!todaysLeads){
localStorage.setItem('todaysLeads', todaysLeads);
}
},[])
useEffect(()=>{
todaysLeads.push(lead)
},[addLead,lead])
console.log(todaysLeads)
return (
<div style={leadStyle}>
{todaysLeads.length > 0 ? todaysLeads.map((lead =>{if(lead.isClaimed === false){<TodaysLeadItem key={lead._id} lead={lead} />}})):''}
</div>
);
}
const leadStyle = {
display: 'grid',
gridTemplateRows: 'repeat(10, 1fr)',
gridGap: '.5rem'
};
export default TodaysLeads
import React,{useContext,useffect,useState}来自“React”
从“../../context/Lead/LeadContext”导入LeadContext
从“../stacks/TodaysLeadItem”导入TodaysLeadItem
从“/”导入潜在客户;
const TodaysLeads=()=>{
const leadContext=useContext(leadContext);
const{addLead,lead,todaysLeads}=leadContext
常数{isClaimed}=铅
useffect(()=>{
如果(!今天的广告){
setItem('todaysLeads',todaysLeads);
}
},[])
useffect(()=>{
今天的广告。推(导)
},[addLead,lead])
console.log(todaysLeads)
返回(
{todaysLeads.length>0?todaysLeads.map((lead=>{if(lead.isClaimed===false){})):“”
);
}
const leadStyle={
显示:“网格”,
gridTemplateRows:“重复(10,1fr)”,
网格间距:'.5rem'
};
导出默认的TodaysLeads
如何使映射仅显示在此会话中创建的Lead,其中isClaimed=false(其默认设置)映射函数中缺少返回语句
return <TodaysLeadItem key={lead._id} lead={lead} />
返回
或
{todaysLeads.length>0
?todaysLeads.map(
领先=>
lead.isClaimed==false&&(
)
)
: ""}
返回不起作用。。。这就是我来这里的原因我想我应该稍微修改一下代码请运行此代码并告诉我它记录了什么{todaysLeads.length>0?todaysLeads.map(lead=>{console.log(lead);return(lead.isClaimed==false&&();}):“”}
不是删除isClaimed=true的项,而是复制它并发送此错误:index.js:1406警告:遇到两个具有相同密钥的子项,5e50c633de81da3f547acedf
。键应该是唯一的,以便组件在更新期间保持其标识。非唯一键可能会导致复制和/或忽略子项-该行为不受支持,并可能在将来的版本中更改。是否声明类型为布尔型?或者它是isClaimed:“true”
,错误是因为您的数据具有相同的键,请更改它们以使其唯一。isClaimed是布尔值
<div style={leadStyle}>
{todaysLeads.length > 0
? todaysLeads.map(
lead =>
lead.isClaimed === false && (
<TodaysLeadItem key={lead._id} lead={lead} />
)
)
: ""}
</div>