Javascript Can';在React Native中将值设置为选定图像时找不到变量
这是我的职责。它们由用户检查所选图像并为其分配IDJavascript Can';在React Native中将值设置为选定图像时找不到变量,javascript,reactjs,react-native,Javascript,Reactjs,React Native,这是我的职责。它们由用户检查所选图像并为其分配ID setCharacter = (props) => { this.setState({ character:props }) } const pressHandler = (character) => { this.setCharacter(character) console.log(character); } 我正在使用这里的函数来分配ID TouchableOpacity onPress={(pre
setCharacter = (props) => {
this.setState({
character:props
})
}
const pressHandler = (character) => {
this.setCharacter(character)
console.log(character);
}
我正在使用这里的函数来分配ID
TouchableOpacity onPress={(pressHandler('1'))}>
<Image style={{height: 120,
width: 120, alignSelf: 'center'}} source={require('../assets/characters/001-superhero.png')}
/>
</TouchableOpacity>
<TouchableOpacity onPress={(pressHandler('2'))}>
<Image style={{height: 120,
width: 120, alignSelf: 'center'}} source={require('../assets/characters/003-superhero.png')}
/>
</TouchableOpacity>
TouchableOpacity onPress={(pressHandler('1'))}>
这是我的错误
ReferenceError:找不到变量:setCharacter
提前非常感谢!我使用了另一个堆栈溢出链接来创建:
我希望我遵守了stackoverflow的所有规则:)尝试使用like
const setCharacter = (props) => {
// .. use state from `useState` for hooks
}
const pressHandler = (character) => {
setCharacter(character)
console.log(character);
}
TouchableOpacity onPress={() => pressHandler('1')}>
...
</TouchableOpacity>
<TouchableOpacity onPress={() => pressHandler('2')}>
...
</TouchableOpacity>
const setCharacter=(道具)=>{
//..对挂钩使用“useState”中的状态
}
常量pressHandler=(字符)=>{
设置字符(字符)
console.log(字符);
}
TouchableOpacity onPress={()=>pressHandler('1')}>
...
pressHandler('2')}>
...
三件事:
onPress
必须指向一个函数,而(pressHandler('1')
不是一个函数。将其更改为onPress={()=>pressHandler('1')}
setCharacter
:const setCharacter=…
setCharacter(character)
替换this.setCharacter(character)
——我不能确定这是否是一个问题,但可能是
您可以使用Bind或arrow函数,但下面的函数应该可以使用 在构造函数中,还使用character属性初始化状态
constructor(props) {
super(props);
this.state = {
character: '',
};
}
要使用传入的字符,只需通过this.state.character
当前图像ID:{this.state.character}
我将其更改为--const setCharacter=()=>{const[character,setCharacter]=useState(“”);}--它不起作用:(谢谢你的回答!我不确定我是否能够使用它,因为我试图不使用OO:(。谢谢。我很难让它起作用:(我对编程非常陌生,所以我不确定自己是否了解所有内容。
<TouchableOpacity onPress={this.pressHandler.bind(this, '1')}>
const pressHandler = (c) => {
this.setState({character: c});
console.log(c);
}