我有一个函数,我在render()方法中调用它它是setState一个来自该状态的标志。
所以我得到了这个错误
无法在现有状态转换过程中(例如在
render
)。
我读到这个错误,我了解这是因为我在render方法中设置了State,这是错误的方法。
因此,如果您有任何想法要告诉我,我将被迫这样做。
关于此功能的主要思想
我有一个对象“名称为工具”的数组,因此在每个对象中我都有“ id,名称,数量,价格”这样就可以在用户界面中呈现三个输入,像这样
并且我有一个状态为“ 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>
);
}
状态并非旨在存储您在应用程序中拥有的所有数据
对于您需要的是状态内是否为空?
为此,请使用全局变量