我正在做一個反應本機(打字稿)的專案,這是我的問題:我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>
任何人都知道如何解決這個問題
uj5u.com熱心網友回復:
您i在傳遞給的回呼函式onPress中重用具有名稱的變數TouchableOpacity。您在map函式中使用相同的變數名state。由于 settersetSelected是在 的回呼函式的本地范圍內呼叫的onPress,因此將使用傳遞給此回呼函式的事件(它存盤在i回呼函式的本地范圍內)。
最簡單的解決方法是重命名變數或根本不宣告它,因為無論如何您都沒有使用它。
{state.map((i) => (
<TouchableOpacity onPress={() => setSelected(i)}>
<Text>{i} Here</Text>
</TouchableOpacity>
))}
如果您確實想要存盤onPress操作的事件(從您當前的代碼來看似乎不太可能),您需要更改狀態的型別或訪問您想從事件中訪問的任何內容。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/479142.html
上一篇:當我嘗試將型別“字串”分配給@Input時,型別“字串”不可分配給型別“PostCard布局”
下一篇:無法在輸入欄位中顯示值
