Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native 尝试将react native TypeError分配给只读属性_React Native - Fatal编程技术网

React native 尝试将react native TypeError分配给只读属性

React native 尝试将react native TypeError分配给只读属性,react-native,React Native,您好,我是react native的新手,我正在尝试用react native中的socketio发送套接字,但我收到错误:typeerror试图分配给ConnectScreen.js中的readonly属性它没有说明哪一行,任何ide我做错了什么请 在expo for web中,它说:无法添加属性更新程序,对象不可扩展 在expo on mobile中,它说:试图在ConnectScreen.js(由SceneView创建)中分配只读属性 从“React”导入React; 从“react n

您好,我是react native的新手,我正在尝试用react native中的socketio发送套接字,但我收到错误:typeerror试图分配给ConnectScreen.js中的readonly属性它没有说明哪一行,任何ide我做错了什么请

在expo for web中,它说:无法添加属性更新程序,对象不可扩展 在expo on mobile中,它说:试图在ConnectScreen.js(由SceneView创建)中分配只读属性

从“React”导入React;
从“react native”导入{View,Text,StyleSheet,Button,TextInput,TouchableHighlight};
从“socket.io客户端”导入socketIO;
从“socket.io客户端”导入io;
导出默认类ConnectScreen扩展React.Component{
建造师(道具){
超级(道具)
此.state={
ip:“localhost”//ip rpi 192.168.1.172
连接:错,
}
返回(
连接到IP:
连接
);
}
connectWifi(){
让socketIO=io(“http://”+this.state.ip+”:8888“,{transports:['websocket']});
this.setState({connecting:true});
log(“连接到http://“+this.state.ip+”:8888…”);
socketIO.on('连接成功',()=>{
this.props.navigation.navigate('Main',{socketIO,ip:this.state.ip});
this.setState({connecting:false});
});
//正在检查与服务器的连接是否成功
设置超时(()=>{
if(this.state.connecting){
this.setState({connecting:false});
socketIO.disconnect();
console.log(“连接失败”);
}
},3500);
}
}
const styles=StyleSheet.create({
容器:{
弹性:1,
为内容辩护:“中心”,
宽度:“50%”,
alignSelf:“中心”,
},
按钮:{
alignSelf:“中心”,
背景颜色:“89cff0”,
宽度:“100%”,
},
txt:{
alignSelf:“中心”,
尺寸:50,
}

});
将构造函数中的
return
语句移动到render方法


React类组件应具有render()方法。当状态更改时,React调用您的render()方法。

谢谢,我这样重写了它,但现在我遇到了新的错误,不变冲突:超过了最大更新深度,当组件在componentWillUpdate或componentDidUpdate内重复调用setState时,可能会发生这种情况,我看到我使用了多个设置状态,但它来自于指南如何实现socketio:/updated ConnectScreen.js:修复,有问题。connectWifi,我必须删除()