Error TypeError: undefined is not an object (evaluating '_this.state') React-Native
Error TypeError: undefined is not an object (evaluating '_this.state') React-Native
当我按下按钮“Select 歌曲时,它给了我错误:“TypeError:undefined is not an object (evaluating '_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>
);
};
知道这里有什么问题吗?
你不能在功能组件中使用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 (...);
};
当我按下按钮“Select 歌曲时,它给了我错误:“TypeError:undefined is not an object (evaluating '_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>
);
};
知道这里有什么问题吗?
你不能在功能组件中使用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 (...);
};