Estoy tratando de tener un botón de encabezado en mi pantalla que acceda al estado de la pantalla y valide si una publicación está lista para enviarse a la base de datos (es decir, no es una cadena vacía y si hay una imagen, publíquela también).
Cuando creo una publicación completa (imagen y texto) e intento activar la función de publicación en la pantalla, funciona (vea el botón 'probar' en la pantalla)
Cuando creo una publicación completa (imagen y texto) y trato de activar la función de publicación desde el encabezado, no captura el estado correctamente.
¿Que está sucediendo aquí? ¿Cómo resuelvo esto?
Estado de pantalla y encabezado
function PostScreen(props) { const [newPost, setNewPost] = useState('') const [isLoading, setIsLoading] = useState(false) const [mediaAsset, setMediaAsset] = useState('') React.useLayoutEffect(() => { props.navigation.setOptions({ headerRight: () => { return ( isLoading ? <ActivityIndicator color='#4292CE' size='small' style={{ marginRight: 10 }} /> : <TouchableOpacity style={styles.postButton} onPress={() => postFunction()}> <Text style={styles.postText}>Post</Text> </TouchableOpacity>) }, title: null }); }, [isLoading, newPost]);Función de publicación
let postFunction = async () => { setIsLoading(true) if (newPost === '') { console.log(newPost) // this comes up as nothing when the postFunction is executed from the header } else if (mediaAsset === '') { //! post only the text } else if (mediaAsset != ''){ //! post the text and the image } setIsLoading(false) }Entorno de prueba