Javascript 为什么';过滤时我的平面列表不能再次渲染我的组件吗?

Javascript 为什么';过滤时我的平面列表不能再次渲染我的组件吗?,javascript,filter,react-hooks,react-native-flatlist,Javascript,Filter,React Hooks,React Native Flatlist,我有一个平面列表,顶部有一个搜索组件: searchFilterFunction(文本)} 自动更正={false} 值={term} containerStyle={{backgroundColor:'transparent'}} 样式={{borderWidth:0} /> lot.id.toString()} renderItem={({item:lot})=>{ const collectDate=新日期(lot.collectDateInMili); const age=differ

我有一个平面列表,顶部有一个搜索组件:


searchFilterFunction(文本)}
自动更正={false}
值={term}
containerStyle={{backgroundColor:'transparent'}}
样式={{borderWidth:0}
/>
lot.id.toString()}
renderItem={({item:lot})=>{
const collectDate=新日期(lot.collectDateInMili);
const age=differenceDays(new Date(),collectDate)+1;
返回(
);
}}
/>
当用户在搜索框中键入时,此平面列表调用函数searchFilterFunction:

函数搜索过滤器函数(文本:字符串){
setTerm(文本);
const textData=text.toLowerCase();
const newData=lots.data.filter(项=>{
const collectDate=新日期(item.collectDateInMili);
const age=differenceDays(new Date(),collectDate)+1;
const itemData=`${item.name.toLowerCase()}${item.balance
.toString()
.toLowerCase()}${age.toString().toLowerCase()}`;
返回itemData.indexOf(textData)>-1;
});
log('searchFilterFunction->textData',textData);
log('searchFilterFunction->newData',newData);
SetLotsResult(新数据);
}
用于搜索此函数数据的状态是my component的原始不变状态。 我将结果传递给lotsResult,并将其呈现在平面列表中。 但是,当搜索一个术语时:28798我创建了一个console.log,我的函数返回值数组,但它不会呈现在平面列表中

Console.log返回:

{
  "message": "searchFilterFunction -> newData",
  "args": [
    [
      {
        "id": 3,
        "originUserId": 1,
        "name": "28798-GENIVAL ALVES 01 (G-1,2)",
        "balance": 2375,
        "aviaries": [
          {
            "id": 2,
            "batchId": 1,
            "name": "AV02",
            "capacity": 45000
          },
          {
            "id": 3,
            "batchId": 1,
            "name": "AV03",
            "capacity": 1500
          }
        ],
        "late": true,
        "batchDateInMili": 1596596400000,
        "collectDateInMili": 1596596400000
      },
      {
        "id": 2,
        "originUserId": 1,
        "name": "28798-GENIVAL TERTO ALVES 01 (G-1,2)",
        "balance": 65000,
        "aviaries": [
          {
            "id": 1,
            "batchId": 1,
            "name": "AV01",
            "capacity": 65000
          }
        ],
        "late": true,
        "batchDateInMili": 1596769200000,
        "collectDateInMili": 1596769200000
      }
    ]
  ]
}

在我看来,你没有正确地调用你的设置状态钩子。它的定义(根据您的注释)为
setLotsResult
。但是,在代码中,似乎正在调用
SetLotsResult(newData)


注意资本化的差异。它们应该匹配。

我验证了,当供给平面列表的数据发生变化时,我的组件没有固定高度的特征。我通过定义最小高度解决了这个问题。

请向我们展示您的状态声明和此函数:`SetLotsResult(newData)`
const[lotsResult,setLotsResult]=useState([])
令人惊讶的是,在我的代码中,函数的首字母大写字母相同。所以错误并不存在。@Splitter这是一个非常好的案例,可以发布一个最小的可重复的问题示例。首先我应该提出这个建议。