【发布时间】:2020-02-05 23:59:08
【问题描述】:
我在我的 react native 应用程序中使用这些标签:https://github.com/peterp/react-native-tags 作为一个反应新手,我对 SetState 有疑问。我已经设置了这样的标签:
<Tags
initialText=""
textInputProps={{
placeholder: "Servicable Postcodes"
}}
initialTags={["3121"]}
onChangeTags={(tags) => this.changeTags(tags)}
inputStyle={{ backgroundColor: "white", borderBottomWidth: 1 }}
renderTag={({ tag, index, onPress, deleteTagOnPress, readonly }) => (
<TouchableOpacity key={${tag}-${index}} onPress={onPress}>
<Text style={styles.tagStyle}>{tag}</Text>
</TouchableOpacity>
)}
/>
changeTags(newtags) {
//this.setState({ myTags: newtags.toString()});
var tagList = newtags.toString();
/*this.setState({myTags: tagList}, function () {
console.log(this.state.myTags);
});*/
}
添加标签的工作方式如下 [3121] [1111] [2222]
因此该代码运行良好。一旦我取消注释 setState 它将像正常一样运行所有内容,但标签不会被添加到列表中。因此,如果我添加 1111,我的控制台日志将是 3121, 1111(但 1111 不会显示为标签)然后如果我尝试添加另一个,它将是 3121, 2222 等。
我认为因为它使用 setState 重新渲染,所以标签永远不会被添加/覆盖,我只会留下一个 3121 标签。或者也许我是一个反应新手并且不知道。
感谢任何帮助。
谢谢
【问题讨论】:
标签: react-native tags setstate