javascript - React-FLUX-将对象作为参数传递-未定义

标签 javascript .net reactjs

我有一个简单的 React 应用程序,我从 Web API 获取联系人列表,我想显示它们。每个联系人都有姓名、电话等 我的应用程序类获取联系人然后呈现为 ​​

render(){
var contact= this.state.contacts[0];
 return( <div><Contact label='First Contact' person={contact}/></div>
)
}

然后在我的联系人类(class)中

render(){
return(
<div> {this.props.label} : {this.props.person.Name}</div>)
}

当我在 chrome 上调试时,我看到 person 作为 prop 传递,object 具有所有参数,但是当我运行代码时,在 {this.props.person.Name} 上出现错误

Cannot read property Name of undefined

如果我删除它,则显示 {this.props.label} 不会出现问题。所以我可以将文本作为 Prop 传递,但不能将对象传递。 有什么想法吗?

  • 编辑:我还可以将 Name 属性传递为 联系人姓名= {contact.Name}/> 这是可行的,但不能将联系人作为对象传递,然后在
  • 的渲染中读取属性

最佳答案

我的猜测是(因为您使用的是flux),在加载页面(初始加载)时,您所在州的联系人代表一个空数组。

尝试

var contact= this.state.contacts[0] || {};

还有一些好的技巧 => 不要使用 var,使用 const :-)

让你的组件监听你的助焊剂存储:

确保您的助焊剂存储区包含可以在组件中调用的 addChangeListener 和 removeChangeListener 函数,以便您的组件自动更新

componentDidMount(){
  myStore.addChangeListener(this._onChange);
}

componentWillUnmount(){
  myStore.removeChangeListener(this._onChange);
}

_onChange = () => {
  this.setState({contacts: myStore.getContacts()});
}

关于javascript - React-FLUX-将对象作为参数传递-未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44568821/

相关文章:

javascript - Node REPL + 下划线不返回任何方法

Javascript 按值将数组传递给函数,保持原始数组不变

javascript - react-router 链接调用 Redux Action

.net - 无法使用 Visual Basic 将具有 12 位小数的 double /十进制值转换为字符串

c# - 如何提高调用 Web 服务的 Excel UDF 的性能?

javascript - Angularjs - 使用数据库中的新数据重新加载范围

.net - 为什么这个通用转换会失败?

javascript - 如何在 Flare React 包中实现类 Controller 选项

javascript - 在react-native中更新对象的状态 - 我没有使用redux

javascript - 在不扩展组件的类中更新 React 中的变量