检查color是否是字符串('white'=== color?// true,'bright white gold'=== color?// false)

时间:2019-05-14 19:52:22

标签: javascript css reactjs react-native

我有多个来自数据库的颜色字符串。对于每种颜色,我将其转换为小写,然后以内联样式传递它:

void WriteDataPlusDateToStream( object fStream, image img, string dateStr )
{
    number endian = 0
    number encoding = 0
    img.ImageWriteImageDataToStream(fStream,endian)
    fStream.StreamWriteAsText(encoding,dateStr) 
}
void ReadDataPlusDateFromStream( object fStream, image img, string &dateStr )
{
    number endian = 0
    number encoding = 0
    img.ImageReadImageDataFromStream(fStream,endian)
    fStream.StreamReadTextLine(encoding,dateStr)    
}


void writeTest(string path)
{
    Result("\n Writing to :" + path )
    image testImg := RealImage("Test",4,100)
    string dateStr;
    number loop = 5;

    number doAutoClose = 1
    object fStream = NewStreamFromFileReference( CreateFileForWriting(path), doAutoClose )
    for( number i=0; i<loop; i++ )
    {
        testImg = icol * random()
        dateStr = GetDate(1)+"@"+GetTime(1)+"|"+Format(GetHighResTickCount(),"%.f") + "\n"
        fStream.WriteDataPlusDateToStream(testImg,dateStr)
        sleep(0.33)
    }
}

void readTest(string path)
{
    Result("\n Reading form :" + path )
    image testImg := RealImage("Test",4,100)
    string dateStr;
    number doAutoClose = 1
    object fStream = NewStreamFromFileReference( OpenFileForReading(path), doAutoClose )
    while ( fStream.StreamGetPos() < fStream.StreamGetSize() )
    {
        fStream.ReadDataPlusDateFromStream(testImg,dateStr)
        result("\n time:"+dateStr)
        testImg.ImageClone().ShowImage()
    }
}

string path = "C:/test.dat"
ClearResults()
writeTest(path)
readTest(path)

当传递的颜色是有效的CSS颜色字符串(如“ RED”和“ WHITE”)时,此方法很好用,但是现在我得到的时髦颜色字符串仅显示为默认白色。有没有一种方法可以更改此默认颜色,因此,如果color不是有效的字符串颜色,请改为显示其他颜色。

我检查了this solution out,但它使用的const color-picker-item = color => ( <View style={{backgroundColor: color.toLowerCase()}} /> ) 不适用于react native。还有其他建议吗?

看起来无效颜色的单词也超过1个,因此我可以进行空白检查,但希望有其他解决方案!

2 个答案:

答案 0 :(得分:0)

一个想法。

您可以做的是创建有效颜色的列表,并检查该颜色是否为有效颜色,否则将其设置为红色或您喜欢的任何颜色。您可以创建具有默认颜色的变量,也可以将其放在有效颜色列表的第一个索引中,并将其用作默认颜色。

() => {}

答案 1 :(得分:0)

这可以通过两种方式解决。我能想到的最干净的方法是对照所有有效的color关键字检查颜色。但是,如果您只想设置默认颜色,则有一种更简单的方法。

CSS!只需添加一个className,例如

<View className='defaultcolorfallback'/>

并将其添加到您的CSS中:

.defaultcolorfallback {
  background-color: #123456;
}

每当提供的背景颜色出现故障时,它将回退到设置的背景颜色。

如果您不想触摸CSS,并且不介意使所有hackytackity变得肮脏,请执行以下操作:

<View style={{background: '#123456', backgroundColor: color.toLowerCase()}} />

它不是很漂亮,但是可以!