如何解决在React中加载更多按钮 步骤1:步骤2:步骤3:步骤4:
我自己找不到解决方案。我发现这个很好的教程可以解决我的问题:https://dev.to/narendersaini32/how-to-create-load-more-logic-in-react-474m,但是因为我已经有了一张地图,所以它对我不起作用!基本上,我想在链接中添加更多负载按钮,例如如何与我的解决方案结合使用,请提出任何建议,谢谢!
' Constants.
'
' Count of bytes/octets in a MAC48 address.
Const OctetCount As Integer = 6
' Length of a byte (octet).
Const OctetLength As Integer = 2
' Count of digits in a MAC48 address.
Const DigitCount As Integer = OctetCount * OctetLength
' Possible count of frames.
Const FrameCount1 As Integer = 1
Const FrameCount3 As Integer = 3
Const FrameCount6 As Integer = 6
' Length of the frames in a MAC address having one,three,or six frames.
Const FrameLength1 As Integer = DigitCount / FrameCount1
Const FrameLength3 As Integer = DigitCount / FrameCount3
Const FrameLength6 As Integer = DigitCount / FrameCount6
' Lenght of a MAC address having one,or six frames.
Const TotalLength1 As Integer = DigitCount + FrameCount1 - 1
Const TotalLength3 As Integer = DigitCount + FrameCount3 - 1
Const TotalLength6 As Integer = DigitCount + FrameCount6 - 1
' HexPattern of one hex digit ignoring case.
Const HexPattern As String = "[0-9,A-Fa-f]"
' Retrieves from the local computer an array of the NICs having a MAC address.
'
' The array has four dimensions:
' 0: Byte array. MAC address of the NIC
' 1: Boolean. The NIC is IP enabled
' 2: Boolean. The NIC has been assigned a default IP gateway
' 3: String. IP address (first if several)
' 4: String. Description of the NIC.
'
' Reference:
' https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-networkadapterconfiguration
'
' 2019-09-23,Cactus Data ApS,Gustav Brock
'
Public Function GetMacAddresses() As Variant()
' This computer.
Const Computer As String = "."
' Namespace to access the Win32_NetworkAdapterConfiguration class.
Const NameSpace As String = "\root\cimv2"
' Query to list IP enabled network adapters.
Const Sql As String = "Select * From Win32_NetworkAdapterConfiguration Where MACAddress Is Not Null"
Dim WMIService As Object
Dim Adapters As Object
Dim Adapter As Object
Dim Octets(0 To OctetCount - 1) As Byte
Dim Nics() As Variant
Dim PathName As String
Dim AdapterCount As Long
Dim Index As Long
PathName = "winmgmts:" & "{impersonationLevel=impersonate}!\\" & Computer & NameSpace
Set WMIService = GetObject(PathName)
' Retrieve the list of network adapters having a MAC address.
Set Adapters = WMIService.ExecQuery(Sql)
AdapterCount = Adapters.Count
If AdapterCount > 0 Then
' Array to hold:
' 0: Byte array. MAC address of NIC
' 1: Boolean. NIC is IP enabled
' 2: Boolean. NIC has been assigned a default IP gateway
' 3: String. IP address (first if several)
' 4: String. NIC description
ReDim Nics(0 To AdapterCount - 1,IpNicInformation.[_First] To IpNicInformation.[_Last])
' Loop the network adapters to fill the array.
For Each Adapter In Adapters
Nics(Index,IpNicInformation.ipNicMacAddress) = MacAddressParse(Adapter.MacAddress)
Nics(Index,IpNicInformation.ipNicIpEnabled) = Adapter.IPEnabled
Nics(Index,IpNicInformation.ipNicHasDefaultIpGateway) = Not IsNull(Adapter.DefaultIPGateway)
If Not IsNull(Adapter.IPAddress) Then
Nics(Index,IpNicInformation.ipNicIpAddress) = Adapter.IPAddress(0)
End If
Nics(Index,IpNicInformation.ipNicDescription) = Adapter.Description
Index = Index + 1
Next
Else
' No adapter having a MAC address was found.
ReDim Nics(0,IpNicInformation.[_First] To IpNicInformation.[_Last])
Nics(Index,IpNicInformation.ipNicMacAddress) = Octets()
Nics(Index,IpNicInformation.ipNicIpEnabled) = False
Nics(Index,IpNicInformation.ipNicHasDefaultIpGateway) = False
Nics(Index,IpNicInformation.ipNicIpAddress) = ""
Nics(Index,IpNicInformation.ipNicDescription) = "N/A"
End If
GetMacAddresses = Nics
End Function
解决方法
您可以在本地对数据进行分页
步骤1:
首先创建一个本地索引变量,以跟踪单击“加载更多”按钮的次数。还添加页面大小和另一个状态变量以保存可见数据。
const PAGE_SIZE = 10 ; // or whatever you like
const [index,setIndex] = useState (0)
const [visibleData,setVisibleData] = useState ([])
步骤2:
然后在加载更多按钮中添加onClick处理程序以处理索引的增加/减少
<button onClick={ () => setIndex (index+1 )}> Load More </button>
步骤3:
然后在索引更改时添加更多数据
useEffect(() => {
const numberOfItems = PAGE_SIZE * ( index +1 );
const newArray = [];
for(let i= 0 ;i< portfolio.length ; i++ ){
if(i < numberOfItems)
newArray.push(portfolio[i])
}
setVisibleData(newArray);
},[index])
步骤4:
现在仅渲染可见数据
<div className="portfolio-list">
{visibleData.map((portfolios) => {
return <PortfolioCart key={portfolios.id} portfolios={portfolios} />;
})}
</div>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。