我想通过他们的id来处理我的组件,所以我想确保某个类的每个组件都有唯一的id。
我应该使用higher order components吗?
或创建工厂功能:
@echo off
setlocal enabledelayedexpansion
for /f "tokens=3 delims=." %%a in ('reg query "HKEY_CLASSES_ROOT\Word.Application\CurVer"') do set reg=%%a
set /a i=0
for %%b in (11 12 14 15) do (
if %%b == %reg% goto setver
set /a i+=1
)
:setver
set /a n=0
for %%c in (2003 2007 2010 2013) do (
if !n! == !i! set ver=%%c && goto endloop
set /a n+=1
)
:endloop
echo Microsoft Version: %ver%
echo.
endlocal
:end
pause
这种方法并不漂亮,因为我不能使用nextID = 1;
function ComponentFactory(props) {
return (
<Component id={nextID++} {...props}/>
);
}
尖括号来创建组件。
我的用例是:
我有一个Todos列表,其中每个Todo应该放在特定的坐标上。
TodoList组件通过将坐标与Todo <>
相关联来保存每个Todo项的坐标状态。
后来我想添加一个新的Todo,我更新我的商店以添加新的待办事项。
TodoList组件查找每个待办事项的ID
并找到该项目的特定坐标。
如果找不到某个ID的坐标,则会随机指定一个新坐标。