2017-10-12 79 views
1

我想通過一個圖像的URI作爲道具,所以我可以重複使用它幾次反應原生。但是,這個當前的解決方案提示我需要使用字符串文字。通過本地圖像URI作爲道具反應原生

const ImageButton = ({ source }) => (
    <Image source={require({ source })} /> 
); 

ImageButton.propTypes = { 
    uri: PropTypes.string, 
}; 

我也試過聲明URI作爲PropTypes.func,做

<Image source={{ source }} /> 

但圖像不會出現。什麼是圖像uri道具的正確實現?

回答

1

由於動態定義的字符串不可行,因此需要爲需要圖像執行單獨的對象。

例如:

const assets = { 
    imageButton: require('./assets/button.jpg'), 
}; 

const ImageButton = (source) => { 
    <Image source={assets[source]} /> 
} 

class MyComponent extends Component(props) { 
    render() { 
    return (
     <ImageButton source={'imageButton'} /> 
    ) 
    } 
} 
+0

所以對於成爲可能,都必須在同一個文件,對不對?我試圖這樣做,我從某處導入ImageButton,只是將它傳遞,但我不認爲這是可能的,因爲導出ImageButton沒有源只會導致沒有圖像被呈現。 –