Reactjs 如何修复状态映射不是React Native中的函数?
我目前正在学习react native,并探索在列表视图中呈现api数据的过程。现在我已经有了api数据,但是当我尝试映射它所说的数组时 TypeError:this.state.readings.map不是函数。(在“this.state.readings.map(函数(值))中){ 返回console.log(值); })“,”this.state.readings.map“未定义) 以下是示例api: 在我的组件的内部安装:Reactjs 如何修复状态映射不是React Native中的函数?,reactjs,react-native,Reactjs,React Native,我目前正在学习react native,并探索在列表视图中呈现api数据的过程。现在我已经有了api数据,但是当我尝试映射它所说的数组时 TypeError:this.state.readings.map不是函数。(在“this.state.readings.map(函数(值))中){ 返回console.log(值); })“,”this.state.readings.map“未定义) 以下是示例api: 在我的组件的内部安装: componentDidMount() { fe
componentDidMount() {
fetch('http://myip:3000/api/readings/3')
.then(response => response.json())
.then(data => this.setState({readings:JSON.stringify(data)}))
}
我国:
this.state = {
readings:[],
}
我的渲染:
render() {
console.log(this.state.readings);
return (
{
this.state.readings.map(value => {
return (
console.log(value)
)
})
}
)
}
我知道这是使用一个功能组件,但它将是相同的行为 问题可能在这方面
.then(data=>this.setState({readings:JSON.stringify(data)}))
编辑
如果this.state.reads的值为[{“id”:1,“AccountNo”:“011-001”,“ConsName”:“Jenny Fox.”,“Address”:“Pacific Triad Road.”]
那么这个代码应该可以工作了
当您的数据加载异步时。您可以在映射它之前为this.state.reads添加检查
export default class App extends React.Component {
constructor(props) {
super(props);
this.state = {
readings: [
{
id: 1,
AccountNo: "011-001",
ConsName: "Jenny Fox.",
Address: "Pacific Triad Road."
}
]
};
}
render() {
return (
this.state.readings.length &&
this.state.readings.map((value) => {
console.log(value);
return <div>{value.Address}</div>;
})
);
}
}
导出默认类App扩展React.Component{
建造师(道具){
超级(道具);
此.state={
阅读资料:[
{
id:1,
账号:“011-001”,
名字:“詹妮·福克斯。”,
地址:太平洋三合会道
}
]
};
}
render(){
返回(
这个。状态。读数。长度&&
this.state.readings.map((值)=>{
console.log(值);
返回{value.Address};
})
);
}
}
ref:如果您可以将示例添加到代码沙盒中,这将有所帮助。@Mohammed我使用react native来实现这一点。我已经尝试了你的工作,但是它说文本字符串必须在一个组件中呈现。你是对的,我错过了这一点。试一下,看看这个works@Mohammed它表示错误:文本字符串必须在组件中呈现。未更改编辑,如果您可以在此应用程序上共享您的代码,那将很有帮助。让我尝试一下。这不起作用。@DevGe您想从映射中返回什么?能否显示this.state.reading的输出?是的,我想返回列表中的所有数据,但是我得到了错误类型错误:this.state.readings.map不是一个函数。(在“this.state.readings.map(函数(值){return console.log(值);})”中,“this.state.readings.map”是未定义的)这段代码可以工作