在我的本机移动应用程序中,我在row.js中编写了一个名为Row的组件,其中包含一个带有rog.cc: In instantiation of 'void append_impl(std::vector<T>&, Args&& ...) [with T = int; Args = {std::vector<int, std::allocator<int> >&}]':
prog.cc:18:15: required from 'void append(std::vector<T>&, Args&& ...) [with T = int; Args = {std::vector<int, std::allocator<int> >&, std::vector<int, std::allocator<int> >&, std::vector<int, std::allocator<int> >, int, int, int, int, int, std::__cxx11::list<int, std::allocator<int> >&}]'
prog.cc:29:59: required from here
prog.cc:10:3: error: static assertion failed
10 | static_assert((std::is_constructible_v<T, Args&&> && ...));
| ^~~~~~~~~~~~~
prog.cc:12:15: error: no matching function for call to 'std::vector<int>::push_back(std::vector<int>&)'
12 | (v.push_back(std::forward<Args>(args)), ...);
事件处理程序的TouchableOpacity
。但是,单击该组件后,该功能将无法运行。
“行”组件显示有关特定电影的一些文本,单击时应运行handlePress()函数:
onClick()
在一个单独的app.js文件中,handlepress函数已被编写并作为道具传递给Row组件。 imdbID变量也从电影对象传递到组件:
const Row = props => (
<TouchableOpacity onClick={() => props.handlePress(props.imdbID)} style={styles.row}>
<Text>Some text</Text>
</TouchableOpacity>
)
handlePress = imdbID => {
// do something with imdbID
}
请有人可以告诉我我在做什么错以及为什么该功能无法运行。
答案 0 :(得分:1)
如果您看看this guide,它没有onClick
。
您应该使用docs。
const Row = props => (
// using onPress
<TouchableOpacity onPress={() => props.handlePress(props.imdbID)} style={styles.row}>
<Text>Some text</Text>
</TouchableOpacity>
)
答案 1 :(得分:0)
React本机没有onClick
的{{1}}。
请改用TouchableOpacity
。
答案 2 :(得分:0)
React-Native不提供onClick
功能,而是提供onPress
,因此将onClick替换为onPress
const Row = props => (
<TouchableOpacity onPress={() => props.handlePress(props.imdbID)} style={styles.row}>
<Text>Some text</Text>
</TouchableOpacity>
)
希望这会有所帮助,毫无疑问
答案 3 :(得分:0)
使用onPress()
代替onClick()
改进的代码
const Row = props => (
<TouchableOpacity onPress={()=> props.handlePress(props.imdbID)} style={styles.row}>
<Text>Some text</Text>
</TouchableOpacity>
)
答案 4 :(得分:0)
使用onPress而不是onClick,并确保您要从本机而非手势处理程序导入可触摸