React Native Typescript:如何解决变量参数类型错误
React Native Typescript : how to resolve an error of type of parameter for a variable
我正在用 react native (typescript) 做一个项目,这是我的问题:我的这部分代码有这个错误 Argument of type 'GestureResponderEvent' is not assignable to parameter of type 'SetStateAction<string>'.ts(2345)
,在 setSelected 的 i 处:
<View style={{}}>
<Text style={styles.texteti}>Heading, paragraphe, lien</Text>
{state.map((i) => (
<TouchableOpacity onPress={(i) => setSelected(i)}>
<Text>{i} Here</Text>
</TouchableOpacity>
))}
{selected == "v1Visible" && (
<View>
<Text>View 1</Text>
</View>
)}
{selected == "v2Visible" && (
<View>
<Text>View 2</Text>
</View>
)}
{selected == "v3Visible" && (
<View>
<Text>View 3</Text>
</View>
)}
{selected == "v4Visible" && (
<View>
<Text>View 4</Text>
</View>
)}
</View>
任何人都知道如何解决这个问题
您正在传递给 TouchableOpacity
的 onPress
的回调函数中重用名称为 i
的变量。您在 state
的 map
函数中使用了相同的变量名。由于 setter setSelected
是在 onPress
的回调函数的本地范围内调用的,因此将使用传递给此回调函数的事件(它存储在 i
的回调函数的局部作用域)。
最简单的解决方法是重命名变量或根本不声明它,因为您无论如何都不会使用它。
{state.map((i) => (
<TouchableOpacity onPress={() => setSelected(i)}>
<Text>{i} Here</Text>
</TouchableOpacity>
))}
如果你真的想存储 onPress
动作的事件(从你当前的代码来看这似乎不太可能),你需要改变你的状态类型或访问你想要的任何东西从活动访问。
我正在用 react native (typescript) 做一个项目,这是我的问题:我的这部分代码有这个错误 Argument of type 'GestureResponderEvent' is not assignable to parameter of type 'SetStateAction<string>'.ts(2345)
,在 setSelected 的 i 处:
<View style={{}}>
<Text style={styles.texteti}>Heading, paragraphe, lien</Text>
{state.map((i) => (
<TouchableOpacity onPress={(i) => setSelected(i)}>
<Text>{i} Here</Text>
</TouchableOpacity>
))}
{selected == "v1Visible" && (
<View>
<Text>View 1</Text>
</View>
)}
{selected == "v2Visible" && (
<View>
<Text>View 2</Text>
</View>
)}
{selected == "v3Visible" && (
<View>
<Text>View 3</Text>
</View>
)}
{selected == "v4Visible" && (
<View>
<Text>View 4</Text>
</View>
)}
</View>
任何人都知道如何解决这个问题
您正在传递给 TouchableOpacity
的 onPress
的回调函数中重用名称为 i
的变量。您在 state
的 map
函数中使用了相同的变量名。由于 setter setSelected
是在 onPress
的回调函数的本地范围内调用的,因此将使用传递给此回调函数的事件(它存储在 i
的回调函数的局部作用域)。
最简单的解决方法是重命名变量或根本不声明它,因为您无论如何都不会使用它。
{state.map((i) => (
<TouchableOpacity onPress={() => setSelected(i)}>
<Text>{i} Here</Text>
</TouchableOpacity>
))}
如果你真的想存储 onPress
动作的事件(从你当前的代码来看这似乎不太可能),你需要改变你的状态类型或访问你想要的任何东西从活动访问。