首页 > 解决方案 > Error TypeError: undefined is not an object (evalating '_this.state') React-Native

问题描述

当我按下“选择歌曲”按钮时,它给了我错误:“TypeError:undefined is not an object (evalating '_this.state')”。这是代码。

const Buttons = ({navigation,route,props}) => {
 
const onUploadPress = async (props) => {

  let data = new FormData();
  this.state.selectedImages.forEach((item, i) => {
    data.append("doc[]", {
      uri: item.uri,
      type: "image/jpeg",
      name: item.filename || `filename${i}.jpg`,
    });
  });

}


return (
  
  <View>
    {/* <Text>{this.props.route.params.params.report.value}</Text> */}
<Button title="Select song" onPress={onUploadPress} />
<Button title="Run Playlist" onPress={() => navigation.navigate('Playlist',{value:param})}/>
</View>
);



};

知道这里有什么问题吗?

标签: react-nativereact-native-androidundefined

解决方案


你不能this在功能组件中使用,你可以使用像这样的状态

const Buttons = ({navigation,route,props}) => {

const [selectedImages, setSelectedImages] = useState([]); // define state like
 
const onUploadPress = async (props) => {

  let data = new FormData();
  selectedImages.forEach((item, i) => { // use like this
    data.append("doc[]", {
      uri: item.uri,
      type: "image/jpeg",
      name: item.filename || `filename${i}.jpg`,
    });
  });

}

return (...);
};

推荐阅读