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>

任何人都知道如何解决这个问题

您正在传递给 TouchableOpacityonPress 的回调函数中重用名称为 i 的变量。您在 statemap 函数中使用了相同的变量名。由于 setter setSelected 是在 onPress 的回调函数的本地范围内调用的,因此将使用传递给此回调函数的事件(它存储在 i 的回调函数的局部作用域)。

最简单的解决方法是重命名变量或根本不声明它,因为您无论如何都不会使用它。

{state.map((i) => (
       <TouchableOpacity onPress={() => setSelected(i)}> 
          <Text>{i} Here</Text>
       </TouchableOpacity>
))}

如果你真的想存储 onPress 动作的事件(从你当前的代码来看这似乎不太可能),你需要改变你的状态类型或访问你想要的任何东西从活动访问。