TypeError:无法读取未定义的属性“valueSeq”

时间:2018-05-14 22:01:49

标签: reactjs lodash reactive-programming immutable.js

我在React.js中遇到一个奇怪的错误。不确定是不是因为我使用immutable作为包。但无论哪种方式都会出现错误:

Store.getMessages
src/store.js:26
  23 |   this.update()
  24 | }
  25 | getMessages(){
> 26 |   return this.messages.valueSeq()
  27 | 
  28 | }
  29 | addChannel(index, channel = {}){
View compiled
Messenger.render
src/components/messenger.js:91
  88 |   height: height,
  89 | };
  90 | 
> 91 |   const messages = store.getMessages()
  92 |   const channels = store.getChannels()
  93 | 
  94 |   return (
View compiled
▶ 24 stack frames were collapsed.
./src/index.js
src/index.js:9
   6 | import './css/app.css'
   7 | 
   8 | 
>  9 | ReactDOM.render(<App />, document.getElementById('root'));
  10 | registerServiceWorker();
  11 | 
  12 | 
View compiled
▶ 6 stack frames were collapsed.

1 个答案:

答案 0 :(得分:0)

你的问题有点模糊,但如果我不得不假设你的问题是什么,你会在这里看到你的getMessages()功能。

getMessages() {
  return this.messages.valueSeq();
}

现在,这个功能本身并不一定存在问题。问题进一步发展,好像this.messages似乎未定义。如果this.messages是你的初始状态,你有没有初始化它?如果不是,那可能是您的问题。无论哪种方式,在您的商店中this.message等于getMessages时调用messages.js时的未定义。未定义变量上不存在任何函数,这就是您收到该错误的原因。如果您可以提供更多的商店代码,我可能会帮助您更多,但这些小部分很难说明为什么this.messages未定义。