2016-11-26 51 views
0

問題問題 - 我有一個表單。表單具有可編輯和不可編輯的狀態,這使得輸入框可以編輯。現在這個特定的輸入框必須根據它處於什麼狀態來顯示不同的值。即,如果它不處於可編輯狀態,它必須顯示'2016年11月27日',如果可編輯狀態必須顯示'27/11/2016' 。反應 - 根據狀態在輸入框中顯示不同的值

問題是,當我嘗試編輯此輸入框,因此除去預先定義的值'27 /二千零十六分之十一' 這是行不通的。我認爲不可能將函數與值綁定。

我試過 -

function showDate() { 
    if(!this.props.isEdit){ 
    return longDate(); 
    } 
    return shortDate(); 
} 

<input 
    id='test' 
    value={this.showDate()} 
    onChange={this.props.onInputChange} 
    readOnly={!this.props.isEdit}    
    /> 

可有人請建議對此有何看法?

更新:我有一個具有功能onInputChange一個組成部分,所有我想顯示輸入框裏面不同的內容,當窗體處於編輯模式。

+0

你將需要共享你的代碼的其餘部分,其中包括'onInputChange'的一些背景 – tirdadc

+0

能否請您澄清多一點你想要做什麼?這裏有一個基本的jsfiddle我試圖重現你的情況:https://jsfiddle.net/reactjs/69z2wepo/ –

+0

我有更新的問題 – GeekOnGadgets

回答

0

你應該使用state而不是props輸入的變化,類似下面

function onInputChange() { 
    if(!this.props.isEdit){ 
    this.setState({ 
     date: longDate() 
    }); 
    return; 
    } 

    this.setState({ 
     date: shorDate() 
    }); 
} 


<input 
    id='test' 
    value={this.state.date} 
    onChange={onInputChange} 
    readOnly={!this.props.isEdit}    
    />