React UseState挂钩,无法连接数组



当我试图在react中将两个数组添加在一起时,遇到了一些奇怪的行为。每个数组块具有50个项目的长度。我的名单从来没有超过50个。

我已经尝试了使用spread运算符和concat方法,以及使用和不使用包装器函数。什么都不起作用

setWordList(wordList => wordList.concat(msg))
setWordList(wordList => [...wordList, msg]) 
setWordList([...wordList, msg]) 
setWordList(wordList.concat(msg)) 
const [wordList, setWordList] = useState([])
const [isSearching, setIsSearching] = useState(true)


const loadMoreList = (data) => {
console.log(data)
setIsSearching(true)
let already = []
for(let i = 0; i < wordList.length; i++){
already.push({_id: wordList[i]._id})
}
console.log(already)
socket.current.emit('get word list more', {filter: data.filter, already: already});
}

socket.current.on('word list in', (msg) => {

setWordList(wordList => [...wordList, msg])

console.log(msg)
setIsSearching(false)

});

示例数据(阵列长度=50(

[{
definition: "1. aufhören zu leben, sein Leben beschließen↵Beispiele↵“jung sterben”↵Wendungen, Redensarten, Sprichwörter↵“zum Sterben langweilig, müde, einsam o. Ä...."
id: "dfe03030-0c50-11ea-afa4-098be982e090"
leitner_no: 2
priority: true
priority_time: 1587986213134
reviews: 1
source: "manual"
source_details: "none"
time_stamp: 1583402873665
word: "sterben  | starb, gestorben |"
_id: "fb99b7c3-34a4-4e63-a98e-41efbbcfe5fc"}]

当前列表和传入数据从未连接,新数据似乎已经取代了列表中的数据。socket('word list in')内的wordListConsole.log返回空列表,而不管是否存在从先前输入呈现的数据。不知怎么的,这种状态似乎并没有持续下去。如有任何帮助,我们将不胜感激。

两个数组都需要展开,如下所示:

setWordList(wordList => [...wordList, ...msg])

如果您只想要一个带有级联项的数组,您可以使用:

setWordList(wordList => [...wordList, ...msg])

结果是:["香蕉"、"橙子"、"苹果"、"…"];

但是,如果您希望拥有一个数组。。。那么你会想:

setWordList(wordList => [...wordList, msg])

那么结果会是:[[…array1],[…array2],[…随便]];

相关内容

  • 没有找到相关文章

最新更新