Javascript TypeError:“输入错误”;“国家”;是只读的

Javascript TypeError:“输入错误”;“国家”;是只读的,javascript,react-native,expo,Javascript,React Native,Expo,我试图从我的Axios请求中呈现数据,但是我得到了一个错误:TypeError:“state”是只读的。我想知道如何在手机屏幕上显示数据。我以前从未这样做过,但我看到的很多文章都有人这样做。我做错了什么导致了这个错误 export default function App() { const [state, setState] = useState(); state = { items: [], }; const url = ""; cons

我试图从我的Axios请求中呈现数据,但是我得到了一个错误:TypeError:“state”是只读的。我想知道如何在手机屏幕上显示数据。我以前从未这样做过,但我看到的很多文章都有人这样做。我做错了什么导致了这个错误

export default function App() {
  const [state, setState] = useState();

  state = {
    items: [],
  };

  const url = "";

  const getAPOD = () => {
    axios
      .get(url)
      .then(function (response) {
        // handle success
        let title = response.data.title;
        console.log(response.data);
        setState({
          items: title,
        });
      })
      .catch(function (error) {
        // handle error
        console.log(error);
      });
  };

  return (
    <View style={styles.container}>
      <Text>{items.title}</Text>
      <StatusBar style="auto" />
    </View>
  );
}
导出默认函数App(){
const[state,setState]=useState();
状态={
项目:[],
};
const url=“”;
常量getAPOD=()=>{
axios
.get(url)
.然后(功能(响应){
//成功
让title=response.data.title;
console.log(response.data);
设定状态({
项目:标题,
});
})
.catch(函数(错误){
//处理错误
console.log(错误);
});
};
返回(
{items.title}
);
}

您必须设置如下状态

 const [state, setState] = useState({items:[]});
您可以像以前那样直接指定状态

最好像下面这样修改代码

export default function App() {
  const [state, setState] = useState({
    items: {title:""},
  });
  
  useEffect(getAPOD,[]);

  const url = "";

  const getAPOD = () => {
    axios
      .get(url)
      .then(function (response) {
        // handle success
        let title = response.data.title;
        console.log(response.data);
        setState({
          items: title,
        });
      })
      .catch(function (error) {
        // handle error
        console.log(error);
      });
  };

  return (
    <View style={styles.container}>
      <Text>{state.items.title}</Text>
      <StatusBar style="auto" />
    </View>
  );
}
导出默认函数App(){
常量[状态,设置状态]=使用状态({
项目:{标题:},
});
使用效果(getAPOD,[]);
const url=“”;
常量getAPOD=()=>{
axios
.get(url)
.然后(功能(响应){
//成功
让title=response.data.title;
console.log(response.data);
设定状态({
项目:标题,
});
})
.catch(函数(错误){
//处理错误
console.log(错误);
});
};
返回(
{state.items.title}
);
}

您必须设置如下状态

 const [state, setState] = useState({items:[]});
您可以像以前那样直接指定状态

最好像下面这样修改代码

export default function App() {
  const [state, setState] = useState({
    items: {title:""},
  });
  
  useEffect(getAPOD,[]);

  const url = "";

  const getAPOD = () => {
    axios
      .get(url)
      .then(function (response) {
        // handle success
        let title = response.data.title;
        console.log(response.data);
        setState({
          items: title,
        });
      })
      .catch(function (error) {
        // handle error
        console.log(error);
      });
  };

  return (
    <View style={styles.container}>
      <Text>{state.items.title}</Text>
      <StatusBar style="auto" />
    </View>
  );
}
导出默认函数App(){
常量[状态,设置状态]=使用状态({
项目:{标题:},
});
使用效果(getAPOD,[]);
const url=“”;
常量getAPOD=()=>{
axios
.get(url)
.然后(功能(响应){
//成功
让title=response.data.title;
console.log(response.data);
设定状态({
项目:标题,
});
})
.catch(函数(错误){
//处理错误
console.log(错误);
});
};
返回(
{state.items.title}
);
}

删除此=>state={items:[],};我得到了错误
ReferenceError:items没有定义
我已经一步一步地添加了答案和注释,这样你就知道了一个功能组件是如何工作的;我得到了错误
ReferenceError:items未定义
我已逐步添加了答案和注释,以便您了解功能组件的工作原理。我得到了错误
ReferenceError:items未定义
您将必须访问state.items,而不是直接在return中访问items谢谢!成功了。我应该声明我在该州从API获得的任何其他信息吗?这取决于你,如果你将值设置为默认值,你可以显示它,直到加载数据为止,如果state.items.title为空,您还可以返回null。它似乎返回未定义的hmmI获取错误
ReferenceError:items未定义
您将必须访问state.items,而不是直接在return中访问项谢谢!成功了。我应该在状态中声明我从API获得的任何其他信息吗?这取决于您,如果您将值设置为默认值,则可以在加载数据之前显示它,如果state.items.title为空,则可以返回null。它似乎返回未定义的hmm