如何解决在现有状态问题期间无法更新-反应?

问题描述 投票:0回答:1

我有一个函数,我在render()方法中调用它它是setState一个来自该状态的标志。

所以我得到了这个错误

无法在现有状态转换过程中(例如在render)。

我读到这个错误,我了解这是因为我在render方法中设置了State,这是错误的方法。

因此,如果您有任何想法要告诉我,我将被迫这样做。

关于此功能的主要思想

我有一个对象“名称为工具”的数组,因此在每个对象中我都有“ id,名称,数量,价格”这样就可以在用户界面中呈现三个输入,像这样

UI

并且我有一个状态为“ isEmpty”的布尔标志,它在将数据发送到数据库之前检查数组中的每个输入。

代码

State = {
   toolsUsed: [
      {
        id: 0,
        name: '',
        price: '',
        count: '',
      },
    ],
    // Checker
    isEmpty: false,
}

renderToolsUsed = () => {
  const {toolsUsed} = this.state;
  const tools = toolsUsed.map((item, i) => {
  const {count, price, name, id} = item;
  this.setState({
     isEmpty: ['name', 'price', 'count'].every(key => item[key].length > 0),
   });
   return (
      <View key={i} style={styles.tools}>
         .... Inputs here ...
      </View>
   );
 });
 return tools;
};

JSX

render() {
    return (
       <View>
           {this.renderToolsUsed()}
       </View>
     );
}
javascript reactjs react-native
1个回答
0
投票

状态并非旨在存储您在应用程序中拥有的所有数据

对于您需要的是状态内是否为空?

为此,请使用全局变量

© www.soinside.com 2019 - 2024. All rights reserved.